查找bad sql的方法

查找bad sql的方法:
select * from (select buffer_gets, sql_text
from v$sqlarea
where buffer_gets >500000
order by buffer_gets desc) where rownum<=30;
 
执行次数多的SQL
select sql_text,executions from
(select sql_text,executions from v$sqlarea order by executions desc)
where rownum<81;
 
读硬盘多的SQL
select sql_text,disk_reads from
(select sql_text,disk_reads from v$sqlarea order by disk_reads desc)
where rownum<21;
 
排序多的SQL
select sql_text,sorts from
(select sql_text,sorts from v$sqlarea order by sorts desc)
where rownum<21;
 
分析的次数太多,执行的次数太少,要用绑变量的方法来写sql
set pagesize 600;
set linesize 120;
select substr(sql_text,1,80) "sql",
count(*), sum(executions) "totexecs"
from v$sqlarea
where executions < 5
group by substr(sql_text,1,80)
having count(*) > 30

order by 2;


猜你喜欢

转载自blog.csdn.net/QQ56430204/article/details/9860241