250 likes | 534 Vues
Физическая архитектура базы данных SQL Server. Физическая архитектура базы данных SQL Server. Типы файлов. Типы файлов. Файлы данных ( data files) Primary (главный файл) – системные и пользовательские данные Secondary (дополнительные файлы) – только пользовательские данные
E N D
Физическая архитектура базы данных SQL Server Физическая архитектура базы данных SQL Server
Типы файлов Типы файлов • Файлы данных (data files) • Primary (главный файл) – системные и пользовательские данные • Secondary (дополнительные файлы) – только пользовательские данные • Файлы журнала транзакций (log files)
Page 0 Page 1 Page 2 Page n Структура файла данных Структура файла базы данных Размер страницы – 8 Кбайт Файл базы данных . . .
Типы страниц Типы страниц • Data – страницы данных (кроме LOB типов) • Index – страницы индексов (В+ дерево) • Text/Image – для хранения данных LOB типов • Служебные страницы
Служебные страницы Служебные страницы • Global allocation map (GAM) – использование экстентов • Page free space (PFS) – наличие свободного пространства на странице • Index allocation map (IAM) – информация об экстентах, используемых таблицами или индексами
Строка данных 1 1 2 3 Страница данных Страница данных заголовок Максимальная длина колонки – 8000 байт, строки данных – 8060 байт Строка данных 2 Строка данных 3 Свободное пространство Смещение строк
Заголовок страницы Заголовок страницы Размер – 96 байтов • Номер страницы • Тип страницы • Объем свободного пространства на странице • Идентификационный номер объекта – владельца страницы (владелец страницы – таблица, индекс, …)
table 2 index1 index2 table 2 table 3 index3 table 2 table 3 Экстенты (1) Экстенты (1) Экстент – группа из 8 страниц Типы экстентов: • Mixed – страницы экстента принадлежат разным владельцам
table 1 table 1 table 1 table 1 table 1 table 1 table 1 table 1 Экстенты (2) Экстенты (2) • Uniform – все страницы экстента принадлежат одному владельцу
Использование экстентов (1) Использование экстентов (1) Страница GAM (global allocation map) – битовое поле; каждый бит соответствует одному экстенту (64000 экстентов) Два типа битовых полей: GAM и SGAM
Использование экстентов (2) Использование экстентов (2) • Global allocation map (GAM): • бит = 1 – экстент пуст; • бит = 0 – экстент содержит данные • Shared global allocation map (SGAM): • бит = 1 – экстент типа mixed, имеющий, по крайней мере, одну свободную страницу • бит = 0 – либо экстент типа uniform, либо экстент типа mixed, не имеющий свободных страниц
Запись данных Запись данных • Сохраняется 8 страниц одного объекта: – свободный экстент (бит = 1 в поле GAM; после записи соответствующий бит в полях GAM и SGAM устанавливается в 0) • Сохраняется менее 8 страниц: – экстент типа mixed (существующий или новый; бит в поле GAM устанавливается в 0, в поле SGAM –устанавливается 1 или 0)
Степень заполнения страниц (1) Степень заполнения страниц (1) Страница PFS(Page free space) – последовательность байтов; каждый байт соответствует одной странице (8000 страниц типа Data, Text/Image, Index) В каждом байте может быть установлен только один бит
Степень заполнения страниц (2) Степень заполнения страниц (2) • Страница полностью пуста (заполнение 0%) • Страница заполнена от 1% до 50% • Страница заполнена от 51% до 80% • Страница заполнена от 81% до 95% • Страница заполнена от 96% до 100%
Информация о владельце страницы (1) Информация о владельце страницы (1) Страница IAM (Index allocation map) – описывает экстенты, принадлежащие одному владельцу Битовое поле; бит = 1 – в экстенте содержатся страницы, принадлежащие соответствующему владельцу 1 страница IAM – 64000 экстентов
Информация о владельце страницы (2) Информация о владельце страницы (2) IAM2 1 экстент = 8 страниц Таблица 1 Таблица 2 Таблица 1 Таблица 2 IAM1
Информация о владельце страницы (3) Информация о владельце страницы (3) Системная таблица sysindexes, колонка FirstIAM Таблица sysindexes Table 1 Первый IAM Первый файл IAM Второй файл IAM IAM
Пример файла базы данных Пример файла базы данных Заго- ловок файла стр. PFS стр. GAM стр. SGAM стр. DATA стр. DATA стр. 0 1 2 3 4 5
Архитектура таблиц и индексов Архитектура таблиц и индексов Два способа организации хранения таблиц: • кластерные таблицы – используют кластерный индекс • куча – таблица, не имеющая кластерного индекса Два типа индексов: кластерный и некластерный
Кластерный индекс (1) Кластерный индекс (1) Строки таблицы сохраняются в порядке, определяемом кластерным индексом. Кластерный индекс – В+ дерево Страницы индексов одного уровня (и листья) – двухсвязный список Листья – страницы данных
Строки данных Строки индексов Строки данных Строки индексов Строки индексов Строки данных Строки данных Строки индексов next prev prev next prev next prev next prev next prev next prev next next prev Кластерный индекс (2) Кластерный индекс (2) Корень дерева Промежуточные узлы Листья
Заголовок Заголовок Заголовок Заголовок Строки данных Строки данных Строки данных Строки данных Куча Куча Таблица, не имеющая кластерного индекса Страницы не связаны списком
Некластерный индекс (1) Некластерный индекс (1) Порядок хранения строк таблицы – произвольный Индекс – В+ дерево Листья дерева – страницы индекса
Строки данных Строки индексов Строки данных Строки индексов Строки индексов Строки данных Строки данных Строки индексов next prev prev next prev next prev next prev next prev next prev next next prev Некластерный индекс (2) Некластерный индекс (2) Корень дерева Листья Кластерный индекс или куча