Программирование >>  Реализация баз данных 

1 ... 7 8 9 [ 10 ] 11 12 13 ... 162


Страницы и экстенты . г . , -

Основной единицей ения данных в SQL Server является страница. В SQL Server 2000 размер страницы составляет 8 кб. Другими словами, в базах данных SQL Server 2000 содер-житс28 страниц на 1 Мб.

В начале каждой страницы расположен заголовок, который используется

для хранения системной информации, например типа страницы, размера свободного места на странице, а также идентификатора объекта, владеющего страницей.

Страницы содержат строки данных (кроме данных типа text, ntext и image, которые хранятся в отдельных страницах). Данные размещаются на странице последовательно и начинаются сразу же после заголовка. В конце страницы расположена таблица смещений строк. Она содержит по одному элементу для каждой строки, размещенной на сграниие; в каждом элементе записано, как далеко первый байт строки расположен от начала страни-иы- Как показано на рис. 1-4, последовательность элементов 1ииы смещений строк является обратной относительна тельностп строк страницы.

Экстенты представляют собой единицу выделения памяти для таблиц и индексов. Размер экстента составляет восемь последовательных или 64 кб. Другими словами, в базах данных SQL Server 2000 приходится i о экстентов на 1 Мб.

Страница данных Microsoft SQL Server

Заголовок странищ)!

----- >

Строка данных 1

Строка данных 2

Строка данных 3

Смещения страниц

Рис. 1-4. Строки данных и элементе! таблицы смешения строк на странице

Для повышения эффективности выделения памяти, SQL Server 2000 не выделяет для таблиц с небольшим объемом данных целые экстенты. В SQL Server 2000 имеется два типа экстентов:

однородные экстенты, принадлежащие одному объекту; лишь объект-владелец может использовать все восемь страниц экстента;

смешанные тенты, у которых может быть до восьми объектов-владельцев.

Для новых таблиц или индексов обычно выделяется место в смешанных экстентах. Когда размер таблицы или индекса настолько, что для них требуется во-

семь они начинают использовать однородные экстенты. Если создается индекс

для таблицы, в которой достаточно строк для генерации индекса размером

в восемь страниц, то вся память для индекса выделяется в виде однородных экстентов.



Файлы и группы файлов баз данн1х

Базе данных в SQL Server 2000 соответствует набор файлов ОС. Данные и журнал транзакций никогда не помешаются в один и тот же файл, а любой отдельный файл используется только одной базой данных.

В базах данных SQL Server 2000 применяются файлы трех типов. овной файл данных. База данных начинается с основного файла данных, который указывает на другие файлы базы данных. У любой базы данных есть только один основной файл данных. Для основнтх файлов данных рекомендуется использовать расширение .mdf.

Дополнительные файлы данных. Это все файлы данных, кроме основного. У некоторых баз данных дополнительные файлы данных вообще отсутствуют, в то время как у других их несколько. Для дополнительнтх файлов данных рекомендуется исгтользо-вать расширение

Файл1а.1а. В них содержится вся информация журнала, используемая для восстановления базы данных. В каждой базе данных должен быть как минимум один журнала, хотя допускается и больше. Для файлов журнала рекомендуется использовать расширение

РРаспределение и повторное использование памяти

SQL Server 2000 эффективно осуществляет быстрое выделение страниц для объектов и

повторное использование памяти, освобожденной при удалении строк. Эти яв-

ляются внутренними по отношению к системе, они к невидимым для пользо-

вателя структурам данных, хотя на них и есть ссылки в SQL Server.

В SQL Server для хранения сведений о распределении экстентов применяются карты распределения двух типов.

Глобальная карта распределение localion Map АМ). В страницах GAM регистрируются выделенные экстенты. Каждая GAM содержит сведения о более чем 64 000 экстентах (или примерно о 4 данных). В GAM каждому экстенту соответствует один бит. Если он равен I. экстент свободен, а если О - занят,

Разделяемая глобальная карта распределения (Shared Global Allocation Map, SGAM). В страницах SGAM регистрируются экстенты, которые в данный момент используются как смешанные и в которых есть по крайней мере одна свободная страница. Каждая SGAM содержит информацию о 64 000 экстентах (или около 4 Гб данных). В SGAM каждому экстенту соответствует один бит. Если он равен 1, экстент ьзуетс я как смешанный и у него есть свободные страницы. Если бит р:теч О, экстент не используется как смешанный или, если он используется как смешанный экстент, все его страницы заняты.

Структура таблиц и индексов

SQL Server 2000 поддерживает индексы представлений. Первый индекс представления

должен быть кластерным. Во время исполнения оператора CREATE INDEX для представления результирующий набор для этого представления сохраняется в баз шныл. при этом используется структура, аналогичная структуре таблицы с кластерным индексом.

Строки с данными каждой таблицы или индексированного представления в

наборе страниц данных. У каждой страницы данных есть за-

головок, который содержит системную информацию, например идентификатор таблицы, которой принадлежит страница. Если используются страницы, связанные в то в

заголовке страницы также находятся указатели на предыдущую и последующую



иы. траницы располагается таблица смешений строк. Остаток страницы заполнен строками данных, как показано на рис.

null

Стро1и данных


Рис ганнзация страниц данных

Для организации страниц в таблицах Server 2000 применяется один из

двух методов: кластерные таблицы или кучи.

Кластерныицы. Это таблицы с кластерным индексом. Строки данных хранятся в порядке, который определяется ключом кластерного индекса. Индекс в виде сбалансированного дерева которое поддерживает быстрое получение строк на основе значений их ключа кластерного индекса. Страницы на каждом уровне индекса, в том числе страницы на уровне листьев дерева, связаны в список, но переход с одного уровня на другой посредством ключа.

Кучи. Это таблицы безкластерно-о индекса. Строки данных хранятся без какого-либо определенного порядка, и страниц данных также не упорядочена. Страницы данных не организованы в связный список.

Структура индексированных представлений аналогична структуре кластерных таблиц.

SQL Server также поддерживает до 24 терны.\ индексов для любо ииы или индексированного представления. Некластерные индексы также имеют структуру B-;iepe-ва, но используют ее чем кластерные. Отличие в том, что некластерные индексы не

влияют на порядок строк. Кластерные таблицы и индексированные представления хранят CB01I строки данных в порядке, которые ляется ключом кластерного индекса. Некластерные индексы, определенные для не влияют на совокупность страниц данных кучи. Страницы данных остаются в куче до тех пор, пока не будет определен кластерный индекс.

Структура журнала транзакций

У любой базы данных SQL Server 2000 есть журнал кйий, в котором регистрируются все транзакции и модификации базы данных, выполненные в ходе каждой Регистрации акций и сделанных в их ходе модификаций нужна для выполнения трех операций-

восстановления отдельных транзакций;

восстановления незавершенных транзакций во время запуска SQL Server;

повтора операций над восстановленной базой данных непосредственно до момента

сбоя.

Архитектура механизма реляционных баз данных

Серверные компоненты SQL Server 2000 получают операторы SQL от клиентов и обрабатывают их. На рис. 1-6 показаны основные компоненты, принимающие участие в обработке оператора SQL, полученного от клиента SQL Server,

9859



1 ... 7 8 9 [ 10 ] 11 12 13 ... 162

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика