-
Notifications
You must be signed in to change notification settings - Fork 2
48. Метод физического хранения данных на диске в SQL Server
Хранение организовано в виде иерархических структур:
-
База данных. Наивысший уровень абстракции для хранилища данных
-
Файл. Для хранения 1 базы данных по умолчанию используется два файла.
- В первом физическом файле базы данных хранится реальная информация. .mdf
- Второй файл является вспомогательным файлом базы данных – ее журналом. .ldf, и без него база данных работать не будет.
-
Экстент. Являет собой основную единицу пространства, выделяемую под таблицу или индекс. Экстент состоит из максимальных восьми смежных страниц данных. В SQL Server при создании таблицы изначально не выделяется ни одной страницы. Они добавляются только при вставке в таблицу новых строк. С этого момента при необходимости дополнительного пространства для хранения данных SQL Server будет выделяться как минимум экстент. Экстенты бывают двух типов:
- Разделяемые экстенты. Разделяемые экстенты могут совместно использоваться восемью различными объектами (т. е. каждая страница экстента может принадлежать другому объекту). Все создаваемые таблицы и индексы помещаются в разделяемые экстенты. Как только количество страниц, выделенных под объект, достигает восьми, для объекта будет выделен новый однородный экстент.
- Однородные экстенты. Структура однородных экстентов понятна из названия. Каждая страница такого экстента принадлежит одному и тому же объекту.
-
Страница. Является элементарной единицей пространства выделяемого внутри отдельного экстента. Размер страницы составляет 8 КБ. Страница может рассматриваться как контейнер для хранения и строк таблиц и индексов. Одна строка не может быть разделена между двумя страницами. Страница состоит:
- Заголовок страницы (page header); заголовок включает: номер страницы, тип страницы, количество свободного пространства на странице, идентификатор единицы распределения объекта, которому принадлежит страница.
- Сами данные
- Указатели смещения строк (row offset).
В SQL Server cуществуют следующие типы страниц:
- страницы данных (Data Pages);
- страницы индекса (Index Pages);
- ВLОВ-страницы(Text/ImagePages)-дляхраненияданныхтипаtext,nvarchar, varbinary, и sql_variant, если их длина > 8 Кб;
- карты размещения страниц (Global Allocation Map, Shared Global Allocation Мар – GAM, SGAM);
- страницы свободного пространства (Page Free Space - PFS);
- карты размещения индекса (Index Allocation Мар - IAM);
- cхема массовых изменений (Bulk Changed Map);
- cхема разностных изменений (Differential Changed Map).