размер стола не уменьшается после очистки - PullRequest
0 голосов
/ 01 июня 2009

Я недавно произвел очистку таблицы приложений. общий объем записи 1,1 миллиона с использованием дискового пространства 11,12 ГБ.

Я удалил 860 тыс. Записей и сохранил 290 тыс. Записей, но почему мое место заняло только 11,09 ГБ?

Я отслеживаю детали в отчете - использование диска - дисковое пространство, используемое файлами данных - используемое пространство .

Мне нужно выполнить сжатый файл данных? Это было загадкой для меня долгое время.

Ответы [ 4 ]

3 голосов
/ 01 июня 2009

Для MS SQL Server перестройте кластерные индексы.

Вы удалили только строки: не освобождено место.

DBCC DBREINDEX или ALTER INDEX ... С REBUILD в зависимости от версии

(это MS SQL, потому что отчет о дисковом пространстве находится в SSMS)

1 голос
/ 01 июня 2009

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

0 голосов
/ 01 июня 2009

Вероятно, вам нужно сжать стол. Я знаю, что SQL-сервер не делает это по умолчанию для вас, я думаю, это из соображений производительности, возможно, другие БД такие же.

0 голосов
/ 01 июня 2009

Я думаю, что это похоже на почтовые папки в Thunderbird: если вы что-то удаляете, оно просто помечается как удаленное, но для повышения производительности пространство не освобождается. Поэтому большая часть ваших 11,09 ГБ теперь будет содержать либо ваши старые данные, либо 0. Файл сжатых данных «сжимает» (или «очищает») это, создавая новый файл, который будет содержать только фактические данные, которые остались.

...