Oracle數據庫性能分析

高資源消耗sql定位:

1、排序較多的SQL

select sql_text,disk_reads,buffer_gets,parsing_scheme_name,executions From v$sqlarea Order by disk_reads desc;

2、消耗CPU較多的sql

select sql_text,sorts,parsing_schema_nameFrom v$sqlarea Order by sorts desc;

3、消耗磁盤較多的sql

select * from (select v.sql_id,v.child_number,v.sql_text,v.elapsed_time,v.cpu_time,v.disk_reads,rank() over(order by v.cpu_time desc) elapsed_rank
from v$sql v) a where elapsed_rank <= 10;
select * from (select v.sql_id,v.child_number,v.sql_text,v.elapsed_time,v.cpu_time,v.disk_reads,rank() over(order by v.disk_reads desc) elapsed_rank 
from v$sql v) a where elapsed_rank <= 10;

4、查詢當前等待事件,主要是direct path read

select event, count(1) from v$session_wait WHERE EVENT NOT IN (select E.NAME from V$EVENT_NAME E WHERE E.WAIT_CLASS = 'Idle') 
group by event order by 2 desc;

5、查找產生direct path read的SQL

select * from v$sql where sql_id in (select distinct sql_id from v$session where event = 'direct path read');

注:SQL語句來源於網絡資料,本人都已測試過,還是挺好用的!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章