Индексы по функции имеют некоторые зависимости
Например, один из наиболее частых запросов к базе имеет следующий вид:
Зависимости:
1) индекс блокируется при любых изменениях в определении функции;
2) функции PL/SQL, которые используются в определении индекса на базе функций, должны быть детерминированы (ключевое слово DETERMINISTIC в определении);
3) при выполнении INSERT, UPDATE происходит обращение к функции индекса;
4) владелец индекса должен иметь для определяющей функции привилегию EXECUTE. Если привилегия EXECUTE отменяется, индекс на базе функций помечается как DISABLED;
5) при удалении функции индекс на базе функций помечается как DISABLED.
Например, один из наиболее частых запросов к базе имеет следующий вид:
select t1.f1, SOME_FUNC(t1.f1) from TEMP_TBL t1 where id = :prmЦелесообразно создать индекс по функции SOME_FUNC для таблицы TEMP_TBL:
create index IXF_TBL_SOMEFUNC on TEMP_TBL(SOME_FUNC(f1), f1) tablespace INDEX pctfree 10 initrans 2 maxtrans 255 storage ( initial 1M minextents 1 maxextents unlimited );Оптимизатор по синтаксису индексы по функциям не использует
Зависимости:
1) индекс блокируется при любых изменениях в определении функции;
2) функции PL/SQL, которые используются в определении индекса на базе функций, должны быть детерминированы (ключевое слово DETERMINISTIC в определении);
3) при выполнении INSERT, UPDATE происходит обращение к функции индекса;
4) владелец индекса должен иметь для определяющей функции привилегию EXECUTE. Если привилегия EXECUTE отменяется, индекс на базе функций помечается как DISABLED;
5) при удалении функции индекс на базе функций помечается как DISABLED.
Комментариев нет :
Отправить комментарий