|
Программирование >> Реализация баз данных
Страницы и экстенты . г . , - Основной единицей ения данных в 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
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |