-
Функциональные индексы основаны на выражениях.
-
Выражение индекса создается из столбцов таблицы, констант, функций 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, сортируются в порядке убывания.
Далее: Сведения о синонимах