|
Программирование >> Администрирование microsoft sql
Заняше 1 Архитектура базы данных для поиска записи SQL Server 2000 вынужден просматривать всю та-(при этом для определения страниц, принадлежащих таблице, используются страницы JAM). Для больших таблиц это крайне неэффективно. Чтобы ускорить поиск, разработчики БД создали индексы для быстрого нахождения страниц данных. Каждый индекс хранит значение индексированного столбца (или столбцов) таблицы в виде В-дерева (B-tree). В-дерево - это сбалансированная иерархическая структура, или дерево, состоящая из корня, промежуточных (которые не являются строго обязательными элементами) и листьев. Все ветви двоичного дерева имеют одинаковое количество уровней. В-дерево физически упорядочивает записи индекса на основе значений ключа. Каждая страница индекса связана с соседними страницами. Корневой узел Предыдущая [Следующая Л Предыдущая] Следующая Рис. 5-1. Структура кластерного индекса В SQL Server 2000 существует два типа индексов: кластерный и некластерный. Для кластерного индекса сервер физически сортирует страницы в файле данных, исходя из значений ключа кластерного индекса (в качестве ключа могут исиользоваться, например, фамилия клиента или почтовый индекс). Самый нижний уровень кластерного индекса представляет собой уровень данных. Когда нужно поместить новую строку данных в для которой создан кластерный индекс, SQL Server 2000 просматривает двоичное дерево, определяя место размещения (и перемещая существующие строки данных и индексов, если это необходимо для сохранения их физически упорядоченного расположения). Системные ательсше базы данн1х Глава 5 Уровень листьев некластерного индекса содержит указатель, шью которого SQL Server 200 аделяет. где найти строку данных, соответствующую значению ключа некластерного индекса. При помещении новой строки данных mry, на которой определен только некласторный индекс, новая строка индекса добавляется в В-дерево, а новая строка данных помещается в любую страницу кучи, размещенной для этой таблицы и имеющую достаточно свободного пространства (рис.5-2). Корневой узел Узлы уровня листа Записи- ( предыдущая!Следующая ющая11 ПредыдущаяСледующая Запи#: :: Страницы дэниыи . Предыдущая [Следующая 3aniit у 3ariic;i). Рис. 5-2. Структура некластерного индекса Резюме SQL Server 2000 использует один или более файлов данных для хранения данных таблиц и индексов. Файлы данных являются файлами ОС. Пространства таблиц и индексов выделяется из смешанных или однородных экстентов целыми страницами, исходя из того, сколько страниц используется таблицей или индексом. Некоторые страницы имеют специальное назначение и используются для определения свободного пространства в файл ныч, страниц и экстентов, выделенных для объектов, а также на использованных страницах. Если не создан кластерный индекс, страницы данных хранятся в неорганизованной куче (disorganized heap). Некластерные индексы используются в качестве указателей на страницы данных, которые хранятся в куче или в структуре кластерного индекса. Если в таблице создан кластерный индекс, страницы данных физически упорядочиваются по значению ключа индекса и располагаются в структуре В-дерева. Страницы индекса всегда хранятся в виде В-дерева. Файлы журнала транзакций Каждая БД :,(,)(. Server 2000 включает в себя по крайней мере один файл журнала транзакций или несколько файлов, расположенных на разных дисках. Каждый файл журнала транзакций - это отдельный файл онерационной системы, который используется только одной БД и имеет расширение (соблюдение этого правила не обязательно, но лучше его Каждый журнал транзакций имеет логическое имя файла, которое используется в предложениях Transact-SQL, и физическое, используемое Windows. К дополнительным свойствам файла относятся: идентификатор (identifier, ID), начальный размер, используемое при увеличении размера (если оно задано) и максимальный размер. В отличие от файлов данных, которые содержат страницы, файл журнала транзакций содержит последовательность записей журнала транзакций. Каждая запись имеет свой порядковый номер в журнале (Log Sequence Number, LSN). Несмотря на то, что физически может существовать несколько файлов журнала транзакций, SQL Server 2000 воспринимает их как один журнал. SQL Server 2000 логически делит каждый физический файл журнала транзакций на несколько виртуальных файлов журнала (Virtual Log Files, VLF). Количество и размер виртуальных файлов журнала определяются динамически в зависимости от размера файла журнала транзакций. Каждый физический файл журнала транзакций содержит по крайней мере два виртуальных. Если задана величина приращения, используемая при увеличении размера файла, то добавленное к файлу пространство будет восприниматься как отдельный физический файл со своими собственными виртуальными файлами. Администратор БД не может задавать число и размер виртуальных файлов журнала. Для более эффективной работы SQL Server 2000 старается поддерживать количество виртуальных файлов журнала. Примечание Лучше создать достаточно большой журнал транзакций, чтобы избежать частого увеличения размера. Если требуется автоматическое увеличение, лучше задать большее значение приращения размера файла. В противном случае будут создаваться небольшие виртуальные файлы, что замедлит процесс восстановления. Занятие 2, Структура журнала транзакций Каждая БД содержит по крайней мере один файл журнала транзакций. Журнал транзакций хранит записи обо всех изменениях БД и содержит всю информацию, необходимую для того, чтобы отменить изменения иди выполнить их повторно. На этом занятии вы познакомитесь с архитектурой журнала транзакций, а также с файлами, которые в его состав. Кроме того, вы узнаете, как работает журнал транзакций и как его работа связана с различными моделями Изучив материал этого занятия, вы сможете: описать организацию файлов журнала транзакций; рассказать о том, как работает журнал транзакций; перечислить модели восстановления, поддерживаемые SQL Server 2000; просмотреть свойства файлов журнала транзакций. Продолжительность занятия - около 30 минут
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |