2010-07-22 52 views
2

我需要使用哪一列來加入V $ session和V $ sqlarea?

我的主要目標是找到大多數disk_reads的前5個查詢,並生成一個包含相關信息的報告。

感謝

回答

1

此SQL並聯接:

select s.sid, s.serial#, a.sql_text 
from v$session s 
join v$sqlarea a on a.hash_value = s.sql_hash_value; 
5

嘗試下面一個,我認爲它可以滿足您的要求。 查找大多數disk_reads的前5個查詢。

SELECT SESION.SID, 
     SESION.USERNAME, 
     OPTIMIZER_MODE, 
     HASH_VALUE, 
     ADDRESS, 
     CPU_TIME, 
     ELAPSED_TIME, 
     DISK_READS, 
     DIRECT_WRITES, 
     SQL_TEXT 
    FROM V$SQLAREA SQLAREA, V$SESSION SESION 
WHERE SESION.SQL_HASH_VALUE = SQLAREA.HASH_VALUE 
    AND SESION.SQL_ADDRESS = SQLAREA.ADDRESS 
    AND SESION.USERNAME IS NOT NULL 
    AND ROWNUM < 6 
    ORDER BY DISK_READS DESC,ELAPSED_TIME DESC; 
相關問題