Result Cache
23 Март 2011
Нет комментариев
SQL Query Result Cache
Возможности Query Result Cache
- Позволяет кэшировать результаты запросов, подзапросов.
- Кэш совместно используется SQL операторами и сессиями пользователей.
- Значительное ускорение операций чтения
- Кэш обновляется при изменении таблиц, из которых получен кэшируемый результат
- Result Cache для параметризованного запроса может переиспользоваться если запрос выполняется с теми же параметрами
- Добавление RESULT_CACHE во вложенные представления отключает оптимизацию между внешним и вложенным представлением в целях максимального повторного использования результата из кэша
Кэширование отключено в случае
- Временные или dictionary-таблицы
- Недетерминированные PL/SQL функции
- Использование CURRVAL и NEXTVAL
- Недетерминированные SQL функции: sysdate, current_date и др.
- Запрос основанный на согласованном чтение данных, которые старше чем последняя сохраненная версия, не будет кешироваться
Для явного указания, что запрос необходимо кэшировать используем хинт result_cache.
select /*+ RESULT_CACHE */ p.prod_category, sum(s.amount_sold) revenue from products p, sales s where s.prod_id = p.prod_id and s.time_id between to_date('01-JAN-2006', 'dd-MON-yyyy') to_date('31-DEC-2006', 'dd-MON-yyyy') group by rollup(p.prod_category); ------------------------------------------------------------------ | Id | Operation | Name | ------------------------------------------------------------------ | 0 | SELECT STATEMENT | | | 1 | RESULT CACHE | fz6cm4jbpcwh48wcyk60m7qypu | | 2 | SORT GROUP BY ROLLUP | | |* 3 | HASH JOIN | | | 4 | PARTITION RANGE ITERATOR| | |* 5 | TABLE ACCESS FULL | SALES | | 6 | VIEW | index$_join$_001 | |* 7 | HASH JOIN | | | 8 | INDEX FAST FULL SCAN | PRODUCTS_PK | | 9 | INDEX FAST FULL SCAN | PRODUCTS_PROD_CAT_IX | ------------------------------------------------------------------
Последние комментарии