В новой версии сервера баз
В новой версии сервера баз данных фирма Microsoft реализовала абсолютно новый механизм хранения.
SQL Server 7.0 организует следующую иерархию хранения:
191
База данных - некоторый объем физического пространства, на котором размещаются данные, принадлежащие одной логической базе данных.
Файл. Каждая база данных содержит не менее двух файлов. Один из них отводится под журнал транзакций. И в отличие от версии 6.5 в новой версии журнал транзакций не может располагаться в одном файле с данными. И еще одно принципиальное отличие - в новой версии каждый файл может принадлежать только одной базе данных, у нас не может быть разделяемых файлов.
Страница. Файлы делятся на страницы размером по 8 Кбайт каждая. Логический номер страницы складывается из внутреннего номера базы данных, номера файла и номера страницы в файле. В рамках БД файлы нумеруются, начиная с 1, и так же нумеруются страницы в рамках файла.
Блоки (экстенты, extents). Пространство под объекты отводится блоками по 8 следующих друг за другом страниц. Блок является основной единицей отведения пространства. Поэтому при создании БД можно указывать размер файла с точностью до 64 Кбайт. Для суперкомпьютеров заложена возможность увеличения размера блоков до 128 страниц.
В отличие от версии 6.5 объекты БД не обязательно занимают целый блок. На начальном этапе заполнения объект может занимать внутри блока несколько страниц. Поэтому существуют два типа блоков:
Однородные (Uniform). Все страницы однородного блока принадлежат одному объекту БД.
Смешанные (Mixed). Разные страницы в блоке принадлежат разным объектам.
Когда объект создается, то обычно его первые страницы отводятся в смешанном блоке, по мере роста объекта он уже размещается в однородных блоках.
В SQL 7.0 существуют уже 7 типов страниц:
страница данных (Data page);
индексные страницы (Index page);
страницы журнала транзакций (Log page);
текстовые страницы (Text/image page);
карты распределения блоков (Global allocation map page);
карты свободного пространства (Page free space page);
индексные карты размещения (Index allocation map page).
Все страницы имеют заголовок размером 96 байтов. В заголовке хранится общая информация, используемая ядром СУБД для работы со страницами. На странице в отличие от блока хранится однородная информация. Поэтому среди параметров страницы задаются:
номер страницы в формате ;
идентификатор объекта, которому принадлежит страница;
номер индекса, которому принадлежит страница;
уровень внутри индексного дерева, которому принадлежит страница;
192
количество отведенных строк на странице, количество заполненных слотов;
общий объем свободного пространства на странице;
указатель на расположение свободного пространства после последней строки на странице;
минимальная длина строки на странице;
объем зарезервированного пространства.
После заголовка следует информация о статусе страницы в картах распределения блоков и карте свободного пространства.
Новыми в архитектуре дисковой памяти являются страницы размещения. В этих страницах хранятся сведения о размещении данных. SQL Server 7.0 использует три типа страниц размещения: карты распределения блоков, карты свободного пространства, индексные карты размещения. SQL Server 7.0 хранит информацию размещения на разных уровнях: на уровне блоков, на уровне страниц, на уровне объектов. Такой разносторонний мониторинг помогает СУБД оптимизировать работу в соответствии с требованиями конкретного запроса.
Содержание раздела