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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-10 02:42:01  来源:igfitidea点击:

ORACLE Join V$SQLAREA V$SESSION

oraclejoin

提问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;