Для определения хэш планов запросов с неразделяемыми курсорами, можно запустить следующий запрос. Необходимо заметить, что все курсоры с одним и тем же планом могут быть использованы совместно.
SELECT plan_hash_value, count(*)
FROM v$sql group by plan_hash_value order by 2 desc;
Следующий запрос покажет SQL запросы которые могут быть использованы совместно
select b.sql_fulltext, b.sql_id, a.executions, a.disk_reads
from v$sqlarea a, v$sql b
where b.sql_id=a.sql_id and
a.plan_hash_value=NNNNNNN
order by 3 desc;
где NNNNNNN является plan_hash_value с наивысшим значением count
Для определения причины, по которой дочерние курсоры не могут быть использованы совместно, воспользуйтесь представлением V$SQL_SHARED_CURSOR, где указаны 50 возможных причин, по которым они стали неразделяемыми.
вторник, 28 июля 2009 г.
Подписаться на:
Сообщения (Atom)