Введение в программирование SQL Server. Создание и управление базой данных. Инструменты целостности данных, страница 12

Вы можете увеличивать размер журнала транзакций с помощью SQL Server Enterprise Manager или оператора ALTER DATABASE.

Обрезание базы данных или файла

Когда выделено слишком много пространства, или когда требуемое пространство уменьшилось, вы можете уменьшить пространство, требуемое базой данных или определённым файлом данных базы данных.

Вы можете обрезать размер базы данных с помощью SQL Server Enterprise Manager или с помощью выполнения Database Consistence Checker (DBCC) оператора SHRINKDATABASE. Это уменьшит все файлы данных в базе данных. Сервер SQL уменьшает файлы журнала с помощью другой операции обрезания.

DBCC SHRINKDATABASE

( database_name [ , target_percent ]

[ , { NOTRUNCATE | TRUNCATEONLY } ]

)

Следующая таблица описывает опции оператора DBCC SHRINKDATABASE:

Опция

Описание

target_percent

Указывает требуемый процент свободного пространства оставшегося в базе данных, после операции обрезания.

NOTRUNCATE

Указывает на необходимость особождения свободного пространства.

TRANCATEONLY

Освобождение свободного пространства и оптимизация размера файла без перемещения каких-либо данных. SQL Server игнорирует параметр target_percent.

Пример

Этот пример уменьшает размер базы данных SampleData так, что файл будет иметь 25 процентов свободного пространства:

DBCC SHRINKDATABASE (SampleData , 25)

В этом примере, если база данных содержит 6 мегабайт данных, а размер файла 8 мегабайт, то после обрезания размер будет уменьшен до 6 мегабайт.

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

Вы можете уменьшить размер файла базы данных с помощью SQL Server Enterprise Manager или DBCC оператора SHRINKFILE.

DBCC SHRINKFILE

( { file_name | file_id }

{ [ , target_size ]

| [ , { EMPTYFILE | NOTRUNCATE | TRUNCATEONLY } ]

}

)

Следующая таблица описывает опции оператора DBCC SHRINKFILE:

Опция

Описание

target_size

Указывает требуемый размер файла данных в мегабайтах. Если не указано, то размер файла будет уменьшен максимально возможно.

EMPTYFILE

Перемещает все данные из указанного файла в другие этой же файловой группы. Используйте эту опцию перед удалением файла.

Пример

Следующий пример уменьшает размер файла данных sample до 10мб:

DBCC SHRINKFILE (Sample, 10)

Вы можете уменьшать файл автоматически. Эта опция по умолчанию отключена. С использованием опции базы данных autoshrink вы можете установить опцию восстановления пространства автоматически. Вы также можете изменить эту опцию в SQL Server Enterprise Manager.

Рассмотрите следующие факты и рекомендации при уменьшении базы данных и файлов:

*  Результирующая база данных должна быть больше базы данных model или существующих данных в базе данных или файле.

*  Прежде чем уменьшать размер, вы должны сделать резервную копию уменьшаемой базы данных и базы данных master.

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

*  SHRINKFILE может уменьшить размер базы данных менее размера указанного при создании базы данных, но не менее размера содержащихся данных.

Удаление базы данных

Вы можете удалить базу данных, если долгое время не нуждаетесь в ней. Удаление базы данных удаляет её вместе с используемыми файлами. Вы можете удалить базу с помощью оператора DROP DATABASE.

DROP DATABASE имя базы данных [,..n]

Следующий пример удаляет базы данных одним оператором:

DROP DATABASE Northwind, pubs

Когда вы удаляете базу данных, рассматривайте следующие рекомендации:

*  С помощью SQL Server Enterprise Manager вы можете удалить только одну базу данных одновременно;

*  С помощью Transact-SQL вы можете удалить несколько баз данных одновременно;