1、查询执行计划改变的sql
select sql_id,count(*) from (select t.SQL_ID,t.PLAN_HASH_VALUE from v$sql_plan t group by t.SQL_ID,t.PLAN_HASH_VALUE) group by sql_id order by count(*) desc
2、查询自启动起来SQL执行平均时间
select sql_text,sql_fulltext,sql_id,last_active_time,elapsed_time/executions
from v$sqlstats
where last_active_time>sysdate-1/12 and executions>100
order by elapsed_time/executions desc
3、查询某个sql_id的执行计划
select * from v$sql_plan t where t.SQL_ID='a77srfk7ybrn8';
4、查询当前连接执行SQL慢的语句
select a.EXECUTIONS,
a.ELAPSED_TIME,
a.ELAPSED_TIME / a.EXECUTIONS / 1000 / 1000 as 秒,
a.SQL_ID,
a.HASH_VALUE,
a.address,
a.SQL_TEXT
from gv$session b, gv$sql a
where a.hash_value = b.SQL_HASH_VALUE
and username in ('ZLCFTPUB', 'ZLCFTUSER')
and status = 'ACTIVE';