Индексы на базе В*-деревьев



бет1/10
Дата01.11.2022
өлшемі239.92 Kb.
#463783
  1   2   3   4   5   6   7   8   9   10
Все лекции (1) (1) (1)

Индексы на базе В*-деревьев


По умолчанию индекс в Oracle имеет структуру В*-дерева. Свое название она получила из-за сходства с перевернутым деревом (рис. 4.1).
В*-дерево состоит из одного или нескольких промежуточных уровней и одного листового уровня. Промежуточные узлы содержат информацию о диапазоне значений, находящихся на следующем промежуточ-




Puc. 4.1. Индекс на базе B*-depeea
ном уровне. Количество промежуточных уровней между корнем и листовым уровнем называется глубиной индекса. На листовом уровне находятся узлы, содержащие сами индексированные значения и ROWID ассоциированных с ними строк таблицы.
На верхних уровнях В*-дерева узлов мало, поэтому для спуска по дереву требуется относительно небольшое число операций ввода/выво- да. Все листовые узлы расположены в индексе на одной и той же глубине, поэтому для получения любой индексной записи требуется одно и то же количество операций. Это выравнивает производительность доступа по индексу.
Oracle позволяет создавать индекс-таблицы (index organized tables, ЮТ), в которых листовые узлы содержат всю строку данных, а не просто ROWID, указывающий на ассоциированную строку. Для индекс- таблицы требуется меньше места на диске, чем для раздельного хранения индекса и таблицы, поскольку в листовых страницах не нужно хранить ROWID. Однако для индекс-таблиц невозможно задать ограничение UNIQUE, и их нельзя хранить в кластере. Кроме того, для индекс-таблиц не поддерживаются распределение, репликация и секционирование, хотя начиная с версии Oracle Database 10g их можно использовать совместно с Oracle Streams для сбора и применения изменений.
В версии Oracle9i механизм индекс-таблиц подвергся ряду усовершенствований, в частности, снято ограничение на использование битовых индексов в качестве вторичных индексов для индекс-таблиц и реализована возможность создавать, перестраивать и объединять вторичные индексы над индекс-таблицами. В Oracle Database 10g эта тенденция получила
дальнейшее развитие - для индекс-таблиц разрешены репликация и секционирование всех видов. Имеются и другие улучшения.


Достарыңызбен бөлісу:
  1   2   3   4   5   6   7   8   9   10




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет