Размер базы данных огромен - PullRequest
3 голосов
/ 11 августа 2009

У меня следующая проблема. У нас есть база данных, которая хранит двоичные файлы в базе данных. Мы знаем, что размер базы данных может быть большим, поэтому мы удалили все двоичные файлы из базы данных и использовали для этого задачу «сжатия». Таким образом, мы надеялись, что база данных будет намного меньше. Вот результаты:

до удаления размер был: 20 гигабайт после удаления размер был: 25 гигабайт (включая файл журнала) после усадки размер был: 13 гигабайт

теперь я понятия не имею, откуда эти 13 гигабайт, самая большая таблица в базе данных является журналируемой, и она составляет 1,3 гигабайта, все остальное вместе не занимает 200 мб ...

Может быть, в лог-файле все еще есть данные, которые задача сжатия не может удалить? Есть ли решение этой проблемы?

Ответы [ 4 ]

3 голосов
/ 11 августа 2009

Для получения дополнительной информации об использовании пространства вы можете попробовать:

EXEC sp_spaceused;
3 голосов
/ 11 августа 2009

Если ваша модель восстановления «Полная» и вы не создали резервную копию, а затем сократили журнал транзакций, он все равно может остаться большим.

В зависимости от вашей ситуации, один из самых простых способов сжать журнал транзакций - установить простую модель восстановления, затем сжать файлы журнала транзакций, а затем вернуть модель восстановления на полную. Однако, если это производственная версия система, в которой вам может потребоваться восстановление на определенный момент времени, вместо этого вам следует выполнить резервное копирование журнала транзакций.

0 голосов
/ 11 августа 2009

Одна из возможностей состоит в том, что таблица, из которой вы удалили данные, представляет собой кучу (это означает, что нет кластерного индекса), и при удалении из кучи пространство, выделенное для таблицы, не обязательно будет освобождено. Проверьте эту статью от MS: http://support.microsoft.com/kb/913399

0 голосов
/ 11 августа 2009

Пожалуйста, не забудьте настроить резервные копии журнала транзакций (не только резервные копии базы данных, так как они не будут сохранять журнал небольшим, как вы узнали) после того, как вы прислушаетесь к совету Робина Дея и сократите журнал, или ваш журнал просто снова станет большим. Наши журналы транзакций копируются каждые 15 минут. Ваше расписание может быть более или менее частым в зависимости от того, сколько данных вы можете позволить себе потерять в случае сбоя. Как минимум, я бы делал ежедневное резервное копирование журнала, чтобы сохранить его разумный размер.

...