Как освободить место после включения сжатия страниц в SQL 2008? - PullRequest
1 голос
/ 04 июня 2009

Я только что включил сжатие страниц в таблице (SQL 2008 Ent) с помощью следующей команды:

ALTER TABLE [dbo].[Table1] REBUILD PARTITION = ALL
WITH 
(DATA_COMPRESSION = PAGE
)

Жесткий диск теперь содержит на 50 ГБ меньше места, чем раньше. Я предполагаю, что мне нужно запустить команду, чтобы освободить место. Кто-нибудь знает это?

Ответы [ 2 ]

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

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

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

Если это так, то простой трюк " DBCC SHRINKDATABASE ('my_database') * " должен помочь. ПРИМЕЧАНИЕ. Это может занять много времени и заблокировать базу данных в течение этого времени, чтобы предотвратить доступ, поэтому планируйте ее с умом.

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

Вы проверили, используя размер таблицы , используя sp_spaceused?

Используемое дисковое пространство не равно пространству, используемому данными. Сжатие повлияет на размер файла журнала (все должны быть зарегистрированы) и потребует некоторого свободного рабочего пространства (например, практическое правило, что для перестроения индекса требуется свободное пространство = 1,2 раза больше табличного пространства).

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

Также читайте статьи Линчи Ши о сжатии данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...