查詢bad sql的方法
阿新 • • 發佈:2018-12-05
查詢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
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;