Базы данных - модели, разработка, реализация

В новой версии сервера баз


В новой версии сервера баз данных фирма 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 хранит информацию размещения на разных уровнях: на уровне блоков, на уровне страниц, на уровне объектов. Такой разносторонний мониторинг помогает СУБД оптимизировать работу в соответствии с требованиями конкретного запроса.

    Содержание раздела