Структура файла в БД

 

• Основная единица хранения и чтения/записи данных в БД – страница

• Размер страницы = 8 кб (MS SQL Server)

• На 1 Мб 128 страниц

 

• В начале каждой страницы - 96-байтный заголовок, хранит системную информацию, например тип страницы, размер свободного места на странице, а также идентификатор объекта, владеющего страницей

• Данные размещаются на странице последовательно в виде строк и начинаются сразу же после заголовка

 

• В конце страницы расположена таблица смещений строк. Содержит по одному элементу для каждой строки; в каждом элементе записано, как далеко первый байт строки расположен от начала страницы. Последовательность элементов – обратная относительно последовательности строк.

 

 

 

Экстент - единица выделения внешней памяти (увеличения/уменьшения дисковых файлов) для таблиц и индексов

 

• 1 экстент = восемь последовательных страниц, или 64 кб

 

• на 1 Мб - 16 экстентов

 

 

Два типа экстентов:

однородные экстенты, принадлежащие одному объекту; лишь объект-владелец может использовать все восемь страниц экстента;

 

смешанные экстенты, у которых может быть до восьми объектов-владельцев.

 

Для новых таблиц или индексов обычно выделяется место в смешанных экстентах.

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

 

 

Для хранения базы данных используется три типа файлов:

Primary — первичный файл.

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

По умолчанию этот файл имеет расширение .mdf .

 

Secondary — вторичные файлы.

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

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

По умолчанию вторичные файлы имеют расширение .ndf.

 

Transaction Log — файлы журнала транзакций.

Минимальный размер такого файла —512 Кбайт. База данных должна иметь, по крайней мере, один файл журнала транзакций. В этом файле будет храниться информация о транзакциях, выполняемых в базе данных.

Файл журнала транзакций не может быть помещен на сжатый диск или удаленный сетевой диск (общедоступный сетевой каталог).

По умолчанию файлам журнала транзакций присваивается расширение .ldf.