Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
bd_otvet.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
239 Кб
Скачать
☆

2.1.2. Управление буферами оперативной памяти

СУБД обычно работают с БД значительного размера; по крайней мере этот размер обычно существенно больше доступного объема оперативной памяти. Понятно, что если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти. Практически единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти. При этом, даже если операционная система производит общесистемную буферизацию (как в случае ОС UNIX), этого недостаточно для целей СУБД, которая располагает гораздо большей информацией о полезности буферизации той или иной части БД. Поэтому в развитых СУБД поддерживается собственный набор буферов оперативной памяти с собственной дисциплиной замены буферов.

Заметим, что существует отдельное направление СУБД, которое ориентировано на постоянное присутствие в оперативной памяти всей БД. Это направление основывается на предположении, что в будущем объем оперативной памяти компьютеров будет настолько велик, что позволит не беспокоиться о буферизации. Пока эти работы находятся в стадии исследований.

13) Индексирование: понятие индекса, индексированного, индексного файла. Типы индексов. Индексно-прямые файлы.

  • Индексно прямые

  • основная область содержит последовательность записей одинаковой длины, расположенных в произвольном порядке

  • структура индексной записи имеет следующий вид:

  • Здесь значение ключа — это значение первичного ключа, а номер записи это порядковый номер записи в основной области, которая имеет данное значение первичного ключа.

Свойство

  • Так как индексные файлы строятся для первичных ключей, однозначно определяющих запись, то в них не может быть двух записей, имеющих одинаковые значения первичного ключа.

  • В индексных файлах с плотным индексом для каждой записи в основной области существует одна запись из индексной области.

  • Все записи в индексной области упорядочены по значению ключа, поэтому можно применить более эффективные способы поиска в упорядоченном пространстве.

 индексно-прямых файлах основная область содержит последовательность записей одинаковой длины, расположенных в произвольном порядке, а ин­дексная запись содержит значение первичного ключа и порядковый номер записи в основной области, которая имеет данное значение первичного ключа.

Так как индексные файлы строятся для первичных ключей, однозначно оп­ределяющих запись, то в индексно-прямых файлах для каждой записи в ос­новной области существует только одна запись из индексной области. Такой индекс называется плотным. Все записи в индексной области упорядочены по значению ключа, поэтому можно применить более эффективные спосо­бы поиска в упорядоченном пространстве.

Наиболее эффективным алгоритмом поиска на упорядоченном массиве яв­ляется бинарный поиск. При этом все пространство поиска разбивается пополам, и так как оно строго упорядочено, то сначала определяется, не является ли срединный элемент искомым, а если нет, то дается оценка в какой половине его надо искать. Далее установленная половина также де­лится пополам и производятся аналогичные действия, и так до тех пор, пока не будет обнаружен искомый элемент.

В следующей таблице приведен список типов индексов, доступных в SQL Server 2005, а также указаны ссылки на дополнительные сведения.

Тип индекса

Описание

Дополнительные сведения

Кластеризованный

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

Правила проектирования кластеризованного индекса

Структуры кластеризованного индекса

Некластеризованный

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

Правила проектирования некластеризованных индексов

Структуры некластеризованных индексов

Уникальный

Уникальный индекс обеспечивает отсутствие повторяющихся значений ключа индекса, что, в свою очередь, приводит к тому, что каждая строка в таблице или представлении является в каком-то смысле уникальной.

Как кластеризованные, так и некластеризованные индексы могут быть уникальными.

Правила по созданию уникальных индексов

Индекс с включенными столбцами

Некластеризованный индекс, дополнительно содержащий кроме ключевых столбцов еще и неключевые.

Индекс с включенными столбцами

Индексированные представления

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

Конструирование индексированных представлений

Полнотекстовый

Специальный тип функционального индекса, основанного на маркерах, который создается и поддерживается службой полнотекстового поиска для SQL Server (MSFTESQL). Он обеспечивает эффективную поддержку сложных операций поиска слов в символьных строковых данных.

Полнотекстовые индексы

XML

Вырезанное материализованное представление больших двоичных XML-объектов (BLOB) в столбце с типом данных xml.

Индексы для столбцов типа данных xml

Индексирование

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

Основное назначение индексов состоит в обеспечении эффективного прямого доступа к записи таблицы по ключу. Различают индексированный файл и ин­дексный файл (рис. 7). Индексированный файл — это основной файл, со­держащий данные отношения, для которого создан индексный файл.

Рис. 7. Индексированный и индексный файлы

Индексный файл — это файл особого типа, в котором каждая запись состоит из двух значений: данных и указателя. Данные представляют поле, по кото­рому производится индексирование, а указатель осуществляет связывание с соответствующим кортежем индексированного файла. Если индексирование осуществляется по ключевому полю, то индекс называется первичным. Такой индекс к тому же обладает свойством уникальности, т. е. не содержит дуб­ликатов ключа.

Обычно индекс определяется для одного отношения, и ключом является значение простого или составного атрибута.

Основное преимущество использования индексов заключается в значитель­ном ускорении процесса выборки данных, а основной недостаток — в за­медлении процесса обновления данных. Действительно, при каждом добав­лении новой записи в индексированный файл потребуется также добавить новый индекс (а это дополнительное время) в индексный файл. Поэтому при выборе поля индексирования всегда важно уточнить, который из двух показателей важнее: скорость выборки или скорость обновления.

Индексы позволяют:

  • осуществлять последовательный доступ к индексированному файлу в со­ответствии со значениями индексного поля для составления запросов на поиск наборов записей;

  • осуществлять прямой доступ к отдельным записям индексированного файла на основе заданного значения индексного поля для составления запросов для заданных значений индекса;

  • организовать запросы, не требующие обращения к индексированному файлу, а лишь приводящие к проверке наличия данного значения в ин­дексном файле.

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

В зависимости от организации индексной и основной областей различают два типа файлов: индексно-прямые файлы и индексно-последовательные файлы.

14)Индексирование: понятие индекса, индексированного, индексного файла. Преимущества и недостатки индексов. Индексно-последовательные файлы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]