Объект базы данных, обеспечивающий прямой и быстрый доступ к строкам в таблице, называется индексом. Индексы используется сервером Oracle7 для ускорения выборки строк с помощью указателя. При использовании индексов уменьшается количество операций обмена с внешней памятью за счет использования быстрого метода поиска данных. Индексы не зависят от таблицы, для которой они были созданы и автоматически используется и поддерживается сервером Oracle7.
Индекс можно создать автоматически (при описании ограничений, типа PRIMARY KEY или UNIQUE) или вручную (используя команду CREATE INDEX).
Сервер Oracle7 использует для индексов структуру B-дерева. Каждый индекс состоит из значений столбцов и указателей (ROWID), организованных в виде страниц (ветвей). Сервер осуществляет поиск по ветвям дерева до обнаружения листа со значением, содержащим указатель.
Структура индекса в виде В-дерева:
Типы индексов:
Создание индекса.
Синтаксис:
CREATE INDEX index ON table (column [, column]…); |
где
index |
Имя создаваемого индекса. |
table |
Имя таблицы, на основе которой он создается. |
column |
Имя столбца (столбцов) для создания индекса. |
Пример: Создание индекса для таблицы S_EMP на столбце LAST_NAME.
Когда создавать индекс:
Когда не создавать индекс:
Просмотр индексов.
Определение индекса содержится в представлении словаря данных USER_INDEXES. Представление USER_IND_COLUMNS содержит имя индекса, имя таблицы и имя столбца.
Удаление индекса.
Удаление индекса из словаря данных производится командой DROP INDEX. Чтобы удалить индекс, необходимо быть его владельцем или иметь привилегию DROP ANY INDEX.
Пример: Удаление индекса с именем s_emp_last_name_idx.
![]() |
Для закрепления материала можно выполнить Практическое задание 14 |