У нас были проблемы с дисковым пространством на нашем SQL-сервере (2005), и я просто запустил некоторые запросы в таблице sys.allocation_units
и обнаружил, что у нас есть 26 ГБ почтовых вложений базы данных. Видимо, мы только что застрелили это в нашем msdb
без какой-либо очистки в течение нескольких лет.Усечение базы данных Почтовый стол
Итак, я попытался использовать sysmail_delete_mailitems_sp
, но мы заполняем наш журнал, и это поражает наше ограничение по пространству. Я смотрел в этом sys sproc и все, что он действительно делает, работает
DELETE FROM sysmail_allitems
с некоторыми параметрами и обработкой ошибок. Это системное представление, которое я предполагаю удалить из коллекции таблиц sysmail_xyz.
любой этих старых почтовых данных. Все, что мы отправляем по почте, уже зарегистрировано и архивировано на нашем прикладном уровне. Могу ли я просто запустить
TRUNCATE TABLE sysmail_allitems
Это мнение, но это время DELETE'd так что мне интересно, если я могу TRUNCATE также. Если нет, возможно, я смогу
TRUNCATE TABLE sysmail_attachments
но, боюсь, я буду осиротеть чем-то, что нарушит мою систему. Какие-либо предложения?
оффтопик, не programmi g вопрос. Попробуйте сайт DBA. –
AFAIK вы не можете обрезать представление. – SQLChao
Вы не можете обрезать представление. Как это будет работать, если вы усекаете представление, ссылающееся на 6 таблиц? Какую из этих таблиц он обрезает? Вам придется удалять эти данные партиями, чтобы они не перегружали ваши файлы журналов. –