1. 查询SQL在ShareedPool中的信息
select address, hash_value, executions, sql_text from v$sql where upper(sql_text) like 'SELECT * FROM T%';
2. 查看SQL是否能被共享
select address, auth_check_mismatch, translation_mismatch, optimizer_mismatch from v$sql_shared_cursor where address in (select address from v$sql where upper(sql_text) like 'SELECT * FROM AA%');
TRANSLATION_MISMATCH 表示SQL游标涉及到的数据对象是不同的。
AUTH_CHECK_MISMATCH 表示对同样一条SQL语句转换是不匹配的。
optimizer_mismatch 表示会话的优化器环境是不同的。
3. 使用count case语句结合,把多次全扫描改写成一次全扫描
select
ym,
count(case when cnt between 1 and 50 then 1 end) count1,
count(case when cnt between 51 and 100 then 1 end) count2
from history group by ym order by ym;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22558114/viewspace-1097821/
,如需转载,请注明出处,否则将追究法律责任。