Oracle 查询SQL执行慢,多个只读节点,某个节点高,执行计划改变

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

猜你喜欢

转载自blog.csdn.net/gaobudong1234/article/details/82737198
今日推荐