10. Архитектура БД SQL Server.pptx
- Количество слайдов: 24
10. Физическая архитектура базы данных SQL Server
10. 1. Типы файлов • Файлы данных (data files) – Primary (главный файл) – системные и пользовательские данные – Secondary (дополнительные файлы) – только пользовательские данные • Файлы журнала транзакций (log files) 2
10. 2. Структура файла базы данных Структура файла данных Файл базы данных . . . Page 0 Page 1 Page 2 Page n Размер страницы – 8 Кбайт 3
10. 3. Типы страниц • Data – страницы данных (кроме LOB типов) • Index – страницы индексов (В+ дерево) • Text/Image – для хранения данных LOB типов • Служебные страницы 4
10. 4. Страница данных заголовок Строка данных 1 Строка данных 2 Строка данных 3 Свободное пространство 3 2 1 Смещение строк Максимальная длина колонки – 8000 байт, строки данных – 8060 байт 5
10. 5. Заголовок страницы Размер – 96 байтов • Номер страницы • Тип страницы • Объем свободного пространства на странице • Идентификационный номер объекта – владельца страницы (владелец страницы – таблица, индекс, …) 6
10. 6. Экстенты (1) Экстент – группа из 8 страниц Типы экстентов: • Mixed – страницы экстента принадлежат разным владельцам table 2 index 1 index 2 table 3 index 3 table 2 table 3 7
10. 6. Экстенты (2) • Uniform – все страницы экстента принадлежат одному владельцу table 1 table 1 8
10. 7. Служебные страницы • Global allocation map (GAM) – использование экстентов • Page free space (PFS) – наличие свободного пространства на странице • Index allocation map (IAM) – информация об экстентах, используемых таблицами или индексами 9
10. 8. Использование экстентов Страница GAM (global allocation map) – битовое поле; каждый бит соответствует одному экстенту (64000 экстентов) Два типа битовых полей: GAM и SGAM 10
10. 8. Использование экстентов • Global allocation map (GAM): – бит = 1 – экстент пуст; – бит = 0 – экстент содержит данные • Shared global allocation map (SGAM): – бит = 1 – экстент типа mixed, имеющий, по крайней мере, одну свободную страницу – бит = 0 – либо экстент типа uniform, либо экстент типа mixed, не имеющий свободных страниц 11
10. 9. Запись данных • Сохраняется 8 страниц одного объекта: – свободный экстент (бит = 1 в поле GAM; после записи соответствующий бит в полях GAM и SGAM устанавливается в 0) • Сохраняется менее 8 страниц: – экстент типа mixed (существующий или новый); бит в поле GAM устанавливается в 0, в поле SGAM –устанавливается 1 или 0 12
10. Степень заполнения страниц Страница PFS (Page free space) – последовательность байтов; каждый байт соответствует одной странице (8000 страниц типа Data, Text/Image, Index) В каждом байте может быть установлен только один бит 13
10. Степень заполнения страниц • Страница полностью пуста (заполнение 0%) • Страница заполнена от 1% до 50% • Страница заполнена от 51% до 80% • Страница заполнена от 81% до 95% • Страница заполнена от 96% до 100% 14
10. 11. Информация о владельце страницы Страница IAM (Index allocation map) – описывает экстенты, принадлежащие одному владельцу Битовое поле; бит = 1 – в экстенте содержатся страницы, принадлежащие соответствующему владельцу 1 страница IAM – 64000 экстентов 15
10. 11. Информация о владельце страницы IAM 2 1 экстент = 8 страниц Таблица 1 Таблица 2 IAM 1 16
10. 11. Информация о владельце страницы Системное представление sys. indexes (master), колонка First. IAM sys. indexes Table 1 Первый IAM Первый файл IAM Второй файл IAM 17
10. 12. Пример файла базы данных Заголовок файла PFS GAM SGAM DATA стр. 0 стр. 1 стр. 2 стр. 3 стр. 4 стр. 5 18
10. 13. Архитектура таблиц и индексов Два способа организации хранения таблиц: • кластерные таблицы – используют кластерный индекс • куча – таблица, не имеющая кластерного индекса Два типа индексов: кластерный и некластерный 19
10. 14. Кластерный индекс (1) Строки таблицы сохраняются в порядке, определяемом кластерным индексом. Кластерный индекс – В+ дерево Страницы индексов одного уровня (и листья) – двухсвязный список Листья – страницы данных 20
10. 14. Кластерный индекс Корень дерева prev next Строки индексов prev next prev Строки индексов Промежуточные узлы next prev Строки индексов next Строки индексов Листья prev next Строки данных 21
10. 15. Куча Таблица, не имеющая кластерного индекса Страницы не связаны списком Заголовок Строки данных 22
10. 16. Некластерный индекс (1) Порядок хранения строк таблицы – произвольный Индекс – В+ дерево Листья дерева – страницы индекса 23
10. 16. Некластерный индекс Корень дерева prev next Строки индексов Листья prev next prev Строки индексов prev next Строки данных Кластерный индекс или куча next Строки индексов prev next Строки данных 24
10. Архитектура БД SQL Server.pptx