我需要使用哪一列来加入V $ session和V $ sqlarea?
我的主要目标是找到包含大多数disk_reads的前5个查询,并生成包含相关信息的报告。
由于
答案 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;