Восстановление свободного места в файловой группе с одним хронологическим разделом

Переехал сюда из ТАК (там никаких комментариев)

Вопрос:

Как правильно восстановить пространство в большой (сотни ГБ) файловой группе с одним разделом таблицы, который упорядочен в хронологическом порядке и не имеет фрагментации индекса и не может позволить себе фрагментации индекса? Я много слышу о сокращении (например, http://www.brentozar.com/archive/2009/08/stop-shrinking-your-database-files-seriously-now/). Фрагментация индекса и временная сложность перестройки - моя главная задача

Фон:

У меня есть огромная таблица (несколько ТБ), которая имеет следующие свойства:

  • данные хранятся только в хронологическом порядке (столбец "C")
  • Индекс основан на измерении "А", а затем столбец "С"
  • таблица разделена на основе 'A', каждый раздел имеет свою собственную файловую группу (с 10% FileGrowth)

Таким образом, данные добавляются только к каждому разделу, и хранение работает очень быстро.

Мы хотим начать раздел также на основе времени (например, раздел на квартал и измерение "A"; снова каждый раздел в отдельной файловой группе). Но есть две проблемы:

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

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

1 ответ

Решение

Для освобождения свободного места в конце раздела:

DBCC SHRINKFILE (FileGroupFileName, TRUNCATEONLY)
GO

Для маркировки раздела только для чтения:

ALTER DATABASE [DBNAME]
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;

ALTER DATABASE [DBNAME] MODIFY FILEGROUP [FileGroupName] READ_ONLY;
GO

ALTER DATABASE [DBNAME]
SET MULTI_USER;
GO
Другие вопросы по тегам