- •Оглавление
- •Занятие 1. Знакомство с sql Server 2000
- •Что такое sql Server 2000
- •Базы данных
- •Реляционные базы данных
- •Возможности sql Server 2000
- •Масштабируемость
- •Хранилища данных
- •Редакции sql Server 2000
- •Занятие 2. Компоненты sql Server 2000
- •Механизм реляционных баз данных
- •Компоненты sol Server 2000
- •Обзор Microsoft sql Server
- •Репликация
- •Инструменты sql Server 2000
- •Инструменты командной строки
- •Инструменты с графическим интерфейсом
- •Утилита Client Network
- •Утилита Server Network
- •Встроенные мастера sql Server 2000
- •Занятие 3. Архитектура базы данных
- •Логические компоненты базы данных
- •Физическая структура базы данных
- •Страницы и экстенты
- •Страница данных Microsoft sql Server
- •Файлы и группы файлов баз данных
- •Распределение и повторное использование памяти
- •Структура таблиц и индексов
- •Структура журнала транзакций
- •Архитектура механизма реляционных баз данных.
- •Протокол tds
- •Архитектура обработчика запросов
- •Архитектура памяти
- •Архитектура ввода-вывода
- •Архитектура полнотекстовых запросов
- •Организация транзакций
- •Принципы администрирования
- •Инфраструктура распределенного управления sql
- •Графические инструменты
- •Резервное копирование и восстановление
- •Импорт/экспорт данных
- •Проверка целостности данных
- •Принципы репликации
- •Хранилища данных и оперативная аналитическая обработка (olap)
- •Oltp-системы
- •Olap-системы
- •Архитектура разработки приложений
- •Язык баз данных
Распределение и повторное использование памяти
SQL Server 2000 эффективно осуществляет быстрое выделение страниц для объектов и повторное использование памяти, освобожденной при удалении строк. Эти операция являются внутренними по отношению к системе, они обращаются к невидимым для пользователя структурам данных, хотя на них и есть ссылки в сообщениях SQL Server.
В SQL Server для хранения сведений о распределении экстентов применяются карты распределения двух типов.
-
• Глобальная карта распределения (Global Allocation Map, GAM). В страницах GAM регистрируются выделенные экстенты. Каждая GAM содержит сведения о более чем 64 000 экстентах (или примерно о 4 Гб данных). В GAM каждому экстенту соответствует один бит. Если он равен 1, экстент свободен, а если 0 — занят,
-
Разделяемая глобальная карта распределения (Shared Global Allocation Map, SGAVK В страницах SGAM регистрируются экстенты, которые в данный момент используются как смешанные и в которых есть по крайней мере одна свободная страница. Каждая SGAM содержит информацию о 64 000 экстентах (или около 4 Гб данных). В SGAM каждому экстенту соответствует один бит. Если он равен 1, экстент используете*! Как смешанный и у него есть свободные страницы. Если бит равен 0, экстент не используется как смешанный или, если он используется как смешанный экстент, все его страницы заняты.
Структура таблиц и индексов
SQL Server 2000 поддерживает индексы представлений. Первый индекс представления должен быть кластерным. Во время исполнения оператора CREATE INDEX для представления результирующий набор для этого представления сохраняется в базе данных, при этом используется структура, аналогичная структуре таблицы с кластерным индексом.
Строки с данными каждой таблицы или индексированного представления хранится в наборе 8-килобайтных страниц данных. У каждой страницы данных есть 96-байтный заголовок, который содержит системную информацию, например идентификатор таблицы, которой принадлежит страница. Если используются страницы, связанные в список, то в заголовке страницы также находятся указатели на предыдущую и последующую страницы, В конце страницы располагается таблица смешений строк. Остаток страницы заполнен строками данных, как показано на рис. 1-5.
Рис. 1*5. Организация страниц данных
Для организации страниц данных в таблицах SQL Server 2000 применяется один из двух методов: кластерные таблицы или кучи.
-
Кластерные таблицы. Это таблицы с кластерным индексом. Строки данных хранятся в порядке, который определяется ключом кластерного индекса. Индекс реализован в виде сбалансированного дерева (В-дерева), которое поддерживает быстрое получение строк на основе значений их ключа кластерного индекса. Страницы на каждом уровне индекса, в том числе страницы на уровне листьев дерева, связаны в двусвязный список, но переход с одного уровня на другой осуществляется посредством ключа.
-
Кучи. Это таблицы без кластерною индекса. Строки данных хранятся без какого-либо определенного порядка, и последовательность страниц данных также не упорядочена.
Страницы данных не организованы в связный список.
Структура индексированных представлений аналогична структуре кластерных таблиц.
SQL Server также поддерживает до 249 некластерных индексов для любой таблицы или индексированного представления. Некластерные индексы также имеют структуру В-дерева, но используют ее иначе, чем кластерные. Отличие в том, что некластерные индексы не влияют на порядок строк. Кластерные таблицы и индексированные представления хранят свои строки данных в порядке, который определяется ключом кластерного индекса. Некластерные индексы, определенные для таблицы, не влияют на совокупность страниц данных кучи. Страницы данных остаются в куче до тех пор, пока не будет определен кластерный индекс.