Показать сообщение отдельно
  #21  
Старый 24.09.2009, 13:18
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Индекс В-дерева



Индекс В-дерева

Структура индекса в виде В-дерева

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


Формат листовых элементов индекса

В элемент индекса входят следующие компоненты:

заголовок элемента индекса, в котором содержится число столбцов и информация о блокировках;
пары "длина-значение" ключевых столбцов, которые определяют размер и значение ключевого столбца (число таких пар - это максимальное число столбцов в индексе);
ROWID строки, содержащей ключевые значения.


Характеристики листовых элементов индекса

В индексе в виде В-дерева несекционированной таблицы:

ключевые значения повторяются, когда существует несколько строк, имеющих одинаковое ключевое значение и если такой индекс несжатый;
не существует индексных элементов, соответствующих строке, в которой все ключевые столбцы неопределенные (содержат значение NULL); поэтому задание в предложении WHERE условия, проверяющего на неопределенное значение (IS NULL), всегда приводит к полному просмотру таблицы;
для указания на строки таблицы используется ограниченный ROWID, поскольку все строки принадлежат одному и тому же сегменту.


Воздействие на индекс операций DML

Сервер Oracle поддерживает все индексы при выполнении над таблицей операций DML. Команды DML воздействуют на индекс следующим образом:

Операции вставки приводят к вставке элемента индекса в соответствующий блок.
Удаление строки приводит только к логическому удалению элемента индекса. Пространство, занимаемое удаленной строкой, не будет доступно для новых записей до тех пор, пока не будут удалены все записи в блоке.
Обновления ключевых столбцов приводят к логическому удалению и вставке индекса. Установка PCTFREE воздействует на индекс только во время создания. Можно вставить новую запись в индексный блок даже в том случае, когда свободного пространства в нем меньше, чем определено в параметре PCTFREE.
__________________
Телеграм чат
Ответить с цитированием