ORACLE加入V $ SQLAREA V $ SESSION

时间:2010-07-22 07:20:47

标签: oracle join

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

我的主要目标是找到包含大多数disk_reads的前5个查询,并生成包含相关信息的报告。

由于

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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;