Member 14114251 Ответов: 1

Сжатие файла данных SQL


У меня есть файл данных sql в одной из моих баз данных, которые занимают много места в моем drice на сервере, теперь я хочу сжаться, чтобы получить немного места. на самом деле он должен был быть 600 ГБ, теперь его 1 ТБ. ниже приведен sql-запрос, который я написал, он работает нормально, но он сжимает размер файла данных, чтобы у меня было место на диске.

Что я уже пробовал:

Используйте [TestFileShrink]
ГО
DBCC SHRINKFILE (N'Testfileshrink_data', 7000, TRUNCATEONLY)
ГО

1 Ответов

Рейтинг:
12

OriginalGriff

Читать документацию: DBCC SHRINKFILE (Transact-SQL)[^]
Это ясно говорит о том, что второй параметр-это:

Цитата:
целевой размер
Это размер файла в мегабайтах, выраженный в виде целого числа. Если этот параметр не указан, DBCC SHRINKFILE уменьшает размер файла до размера по умолчанию. Размер по умолчанию - это размер, указанный при создании файла.
Таким образом, 7000 мегабайт в качестве необходимого размера-это 7 ГБ.
А еще там написано::
Цитата:
Никакого
Освобождает все свободное пространство в конце файла для операционной системы, но не выполняет никакого перемещения страницы внутри файла. Файл данных сжимается только до последнего выделенного экстента. target_size игнорируется, если задано значение TRUNCATEONLY.
Так... вы отключили необходимый размер и сказали: "только избавьтесь от пространства в конце, не беспокойтесь о пространстве где-либо еще"

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