-
Функциональные индексы основаны на выражениях.
-
Выражение индекса создается из столбцов таблицы, констант, функций SQL и определяемых пользователем функций.
Функциональные индексы, определяемые с помощью ключевых слов UPPER(column_name)
или LOWER(column_name)
, позволяют выполнять поиск без учета регистра знаков. Например, рассмотрим следующий индекс:
CREATE INDEX
upper_last_name_idx ON emp2 (UPPER
(last_name));
Это облегчает обработку запросов, например таких:
SELECT
* FROM
emp2 WHERE UPPER
(last_name) = ‘KING
‘;
Сервер Oracle использует индекс, только когда в запросе применяется эта конкретная функция. Например, в следующей инструкции возможно использование индекса, но без предложения WHERE
сервер Oracle скорее всего будет выполнять полный просмотр таблицы:
SELECT * FROM employees WHERE UPPER (last_name) IS NOT NULL
|
Примечание. Для использования функционального индекса параметр инициализации QUERY_REWRITE_ENABLED
должен быть TRUE
(истина).
Сервер Oracle обрабатывает индексы со столбцами, помеченными DESC
, как функциональные индексы. Столбцы, помеченные DESC
, сортируются в порядке убывания.
Далее: Сведения о синонимах