转载oracle查询使用频率和磁盘消耗需要缓存大小

oracle查询使用频率和磁盘消耗需要缓存大小

复制代码
SELECT *
  FROM (SELECT Sql_Text, Sql_Id, Cpu_Time FROM V$sql ORDER BY Cpu_Time DESC)
 WHERE Rownum <= 10
 ORDER BY Rownum ASC;

SELECT *
  FROM (SELECT Sql_Text, Sql_Id, Cpu_Time FROM V$sqlarea ORDER BY Cpu_Time DESC)
 WHERE Rownum <= 10
 ORDER Byrownum ASC;
复制代码

 

这2个语句效果基本一样,一个从v$sql视图查询一个从v$sqlarea视图查询。 

列出使用频率最高的5个查询:
复制代码
SELECT Sql_Text, Executions
  FROM (SELECT Sql_Text,
               Executions,
               Rank() Over(ORDER BY Executions DESC) Exec_Rank
          FROM V$sql)
 WHERE Exec_Rank <= 5;
复制代码

 

消耗磁盘读取最多的sql top5:  
复制代码
SELECT Disk_Reads, Sql_Text
  FROM (SELECT Sql_Text,
               Disk_Reads,
               Dense_Rank() Over(ORDER BY Disk_Reads DESC) Disk_Reads_Rank
          FROM V$sql)
 WHERE Disk_Reads_Rank <= 5;
复制代码

 

 
找出需要大量缓冲读取(逻辑读)操作的查询:
复制代码
SELECT Buffer_Gets, Sql_Text
  FROM (SELECT Sql_Text,
               Buffer_Gets,
               Dense_Rank() Over(ORDER BY Buffer_Gets DESC) Buffer_Gets_Rank
          FROM V$sql)
 WHERE Buffer_Gets_Rank <= 5;
复制代码
原文地址:

猜你喜欢

转载自blog.csdn.net/qq_37372909/article/details/80547483