Операция DBCC SHRINKFILE увеличивает использование данных вместо - PullRequest
1 голос
/ 05 июля 2010

Прежде всего, я знаю, что лучше не сокращать базу данных.Но в нашей ситуации нам пришлось сжать файл данных, чтобы получить больше места.

Среда: SQL Server 2005 x64 SP3 Ent, работающая на Windows Server 2003 Enterprise x64.

База данных имеет один файл данных и один файл журнала.Перед запуском DBCC SHRINKFILE файл данных имеет 640 ГБ, в котором 400 ГБ свободно, поэтому данные составляют около 240 ГБ.Чтобы ускорить процесс сжатия, нам сначала нужно было выполнить дефрагментацию базы данных, а затем сжать файл данных.

Однако после того, как мы сократили файл данных базы данных с помощью DBCC SHRINKFILE, данные изменились на 490 ГБ.Как это могло случиться?

1 Ответ

0 голосов
/ 25 июля 2010

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

...