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

3.2 Управление базами данных

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

Управление увеличением файлов данных и журналов

Когда данные увеличиваются или увеличивается активность изменения данных, вам может понадобиться увеличить размер файлов данных или журнала. Вы можете управлять базой данных с помощью SQL Server Enterprise Manager или с помощью оператора ALTER DATABASE.

Вы можете контролировать размер базы данных с помощью:

*  Конфигурирования файлов базы данных и журнала на автоматическое приращение.

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

*  Вручную добавлять дополнительные файлы журнала или данных.

Вы можете установить автоматическое приращение с помощью оператора ALTER DATABASE. Использование автоматического приращение уменьшает администраторские задачи, заключенные в ручном увеличении размера базы данных.

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

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

Для оптимальной производительности:

*  Выделяйте необходимое количество начального пространство, чтобы избежать частого автоматического приращения;

*  Указывайте максимальный размер файлов данных, если у вас есть несколько баз данных;

*  Устанавливайте размер приращения файлов данных и журнала так, чтобы не было частого автоматического увеличения.

Если вы не сконфигурировали существующие файлы на автоматическое приращение, вы всё ещё можете увеличить размер. Если указан ноль для значения автоматического увеличения, значит, автоматического увеличения нет.

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

Пример

Следующий пример увеличивает текущий размер журнала и добавляет дополнительный файл базе данных Sample1:

ALTER DATABASE Sample1

MODIFY FILE (NAME='SampleLog',

SIZE = 15mb)

GO

ALTER DATABASE Sample1

ADD FILE

(

NAME='SampleData2',

FILENAME='c:\Temp\SampleData2.mdf',

SIZE = 15mb,

MAXSIZE=20mb

)

GO

Наблюдение и увеличения журнала транзакций

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

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

Вы можете следить за журналом транзакций с помощью SQL Server Enterprise Manager, оператора DBCC SQLPERF (LOGSPACE) или системный монитор Windows.

Некоторые ситуации, которые увеличивают активность журнала транзакций:

*  Загрузка информации в таблицу, которая содержит индексы. Сервер SQL записывает все вставки и изменение индексов. При загрузке таблиц без индексов, SQL Server записывает в журнал только расширение пространства.

*  Транзакции, которые выполняют много изменений (INSERT, UPDATE и DELETE) в таблице с помощью одной транзакции.

*  Добавление или изменение данных Image или Text.