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 |
------------------------------------------------------------------

Последние комментарии