Поделиться через


Файлы и файловые группы базы данных

Как минимум, каждая база данных SQL Server имеет два файла операционной системы: файл данных и файл журнала. Файлы данных содержат данные и объекты, такие как таблицы, индексы, хранимые процедуры и представления. Файлы журналов содержат сведения, необходимые для восстановления всех транзакций в базе данных. Файлы данных можно группировать в файловых группах в целях выделения и администрирования.

Файлы базы данных

Базы данных SQL Server имеют три типа файлов, как показано в следующей таблице.

Файл Описание
Первичный Файл данных-источник содержит сведения о запуске базы данных и указывает на другие файлы в базе данных. Пользовательские данные и объекты могут храниться в этом файле или в дополнительных файлах данных. У каждой базы данных есть один первичный файл данных. Рекомендуемое расширение имени файла для основных файлов данных — .mdf.
Вторичный Вторичные файлы данных являются необязательными, определяются пользователем и хранят пользовательские данные. Вторичные файлы можно использовать для распространения данных по нескольким дискам, помещая каждый файл на другой диск. Кроме того, если база данных превышает максимальный размер одного файла Windows, можно использовать вторичные файлы данных, чтобы база данных продолжала расти.

Рекомендуемое расширение имени файла для вторичных файлов данных — NDF.
Журнал транзакций Файлы журнала транзакций содержат сведения журнала, используемые для восстановления базы данных. Для каждой базы данных должен быть по крайней мере один файл журнала. Рекомендуемое расширение имени файла для журналов транзакций — LDF.

Например, можно создать простую базу данных Sales , содержащую один первичный файл, содержащий все данные и объекты, а также файл журнала, содержащий сведения журнала транзакций. Кроме того, можно создать более сложную базу данных с именем Orders , включающую один первичный файл и пять вторичных файлов. Данные и объекты в базе данных распределены по всем шести файлам, а четыре файла журнала содержат сведения журнала транзакций.

По умолчанию данные и журналы транзакций помещаются на один диск и путь. Это делается для обработки систем с одним диском. Однако это не может быть оптимальным для рабочих сред. Рекомендуется поместить файлы данных и журналов на отдельные диски.

Файловые группы

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

Например, три файла, Data1.ndf, Data2.ndf и Data3.ndf, можно создать на трех дисках соответственно и назначить файловой группе fgroup1. Затем таблицу можно создать специально в файловой группе fgroup1. Запросы к данным из таблицы будут распространяться по трем дискам; это повысит производительность. Такое же улучшение производительности можно добиться с помощью одного файла, созданного в наборе полосок RAID (избыточного массива независимых дисков). Однако файлы и файловые группы позволяют легко добавлять новые файлы на новые диски.

Все файлы данных хранятся в файловых группах, перечисленных в следующей таблице.

Файловая группа Описание
Первичный Файловая группа, содержащая основной файл. Все системные таблицы выделяются основной файловой группе.
Определённый пользователем Любая файловая группа, созданная пользователем при первом создании базы данных или позже измененная.

Файловая группа по умолчанию

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

Файловая группа PRIMARY — это файловая группа по умолчанию, если она не изменена с помощью инструкции ALTER DATABASE. Выделение системных объектов и таблиц остается в файловой группе PRIMARY, а не новой файловой группе по умолчанию.

CREATE DATABASE (SQL Server Transact-SQL)

ALTER DATABASE Опции файлов и файловых групп (Transact-SQL)

Подключение и отсоединение базы данных (SQL Server)