Skip to content

48. Метод физического хранения данных на диске в SQL Server

Pandas edited this page Jan 2, 2018 · 1 revision

Хранение организовано в виде иерархических структур:

  • База данных. Наивысший уровень абстракции для хранилища данных

  • Файл. Для хранения 1 базы данных по умолчанию используется два файла.

    • В первом физическом файле базы данных хранится реальная информация. .mdf
    • Второй файл является вспомогательным файлом базы данных – ее журналом. .ldf, и без него база данных работать не будет.
  • Экстент. Являет собой основную единицу пространства, выделяемую под таблицу или индекс. Экстент состоит из максимальных восьми смежных страниц данных. В SQL Server при создании таблицы изначально не выделяется ни одной страницы. Они добавляются только при вставке в таблицу новых строк. С этого момента при необходимости дополнительного пространства для хранения данных SQL Server будет выделяться как минимум экстент. Экстенты бывают двух типов:

    • Разделяемые экстенты. Разделяемые экстенты могут совместно использоваться восемью различными объектами (т. е. каждая страница экстента может принадлежать другому объекту). Все создаваемые таблицы и индексы помещаются в разделяемые экстенты. Как только количество страниц, выделенных под объект, достигает восьми, для объекта будет выделен новый однородный экстент.
    • Однородные экстенты. Структура однородных экстентов понятна из названия. Каждая страница такого экстента принадлежит одному и тому же объекту.
  • Страница. Является элементарной единицей пространства выделяемого внутри отдельного экстента. Размер страницы составляет 8 КБ. Страница может рассматриваться как контейнер для хранения и строк таблиц и индексов. Одна строка не может быть разделена между двумя страницами. Страница состоит:

    1. Заголовок страницы (page header); заголовок включает: номер страницы, тип страницы, количество свободного пространства на странице, идентификатор единицы распределения объекта, которому принадлежит страница.
    2. Сами данные
    3. Указатели смещения строк (row offset).

Imgur

В SQL Server cуществуют следующие типы страниц:

  1. страницы данных (Data Pages);
  2. страницы индекса (Index Pages);
  3. ВLОВ-страницы(Text/ImagePages)-дляхраненияданныхтипаtext,nvarchar, varbinary, и sql_variant, если их длина > 8 Кб;
  4. карты размещения страниц (Global Allocation Map, Shared Global Allocation Мар – GAM, SGAM);
  5. страницы свободного пространства (Page Free Space - PFS);
  6. карты размещения индекса (Index Allocation Мар - IAM);
  7. cхема массовых изменений (Bulk Changed Map);
  8. cхема разностных изменений (Differential Changed Map).
Clone this wiki locally