2008-12-05 7 views
2

У меня есть несколько баз данных, каждый из которых имеет по четыре файла; один для PRIMARY, IDX, IMAGE, LOG, их начальные размеры были установлены на 200 МБ каждый, но они потребляют гораздо меньше места, всего 100 МБ.SQL Server 2005: изменение размера файла

1) возможно ли изменить размер файлов базы данных, пока они используются до более разумных размеров, скажем, «потребление тока» + 10 МБ?

2) Можно ли объединить эти файлы в один файл .mdf и .ldf?

Мой предпочтительный ответ на этот вопрос - это несколько T-SQL, но я буду принимать ссылки на MSDN (или другие сайты) со ссылкой на то, что T-SQL ищет.

ответ

3

1) DBCC SHRINKFILE или SHRINKDATABASE. Также есть контекстный щелчок в SQL Management Studio для всех задач.

Если они настроены на автоматическое выращивание, тогда они сделают именно это и отменит ваше сокращение. Shrink ops лучше всего использовать, когда происходит большое удаление данных, которое произошло в db, или когда сервер будет сбой с малого дискового пространства.

2) Да, но это смешно сложно. У вас будут выпадать все таблицы и создать их в целевой файловой группе, а затем повторно заселить их. Возможно, есть способ сделать это, используя опции RESTORE, но IMHO вам лучше оставить их, если есть менее 10 файлов.

+0

Что касается №2, легко перемещать индексы, используя CREATE INDEX .. ON filegroup WITH DROP_EXISTING. Вы можете легко написать запрос для скрипта. Таблицы без кластеризованных индексов (кучи) должны иметь добавленный кластерный индекс, затем перемещаться, а затем удалять кластерный индекс. – 2008-12-06 05:51:47