ORACLE 加入 V$SQLAREA V$SESSION
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/3306605/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
ORACLE Join V$SQLAREA V$SESSION
提问by mehmet6parmak
which column i need to use to join V$session and V$sqlarea?
我需要使用哪个列来加入 V$session 和 V$sqlarea?
My main aim is to find top 5 queries with most disk_reads and generate a report containing relevant information.
我的主要目标是找到最多 disk_reads 的前 5 个查询,并生成包含相关信息的报告。
Thanks
谢谢
采纳答案by Tony Andrews
This SQL does the join:
此 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;
回答by Pan.Tian
Try below one, I think it satisfy your requirement. Find top 5 queries with most disk_reads.
尝试以下一种,我认为它满足您的要求。查找具有最多 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;