如何使用oracle视图识别Oracle中的高负载SQL?

Mar*_*all 7 sql oracle

我正在寻找一个查询,它将返回一个高负载的sql语句列表.我不想使用任何Oracle工具,如ADDM或AWR.我需要一个查询语句,它将返回高负载的sql语句.

Ste*_*ell 3

您可以直接查询AWR表,这可能是最简单的方法。

或者,我在没有启用统计信息的 Oracle 8i 上使用的一个简单技术是从 v$sql 中选择具有最高缓冲区获取执行率的 SQL。您可以使用此查询来仅搜索高执行计数查询,或执行高物理 IO 等的查询。

AWR 和 ASH 表将提供更好的信息,但这可能是简单的第一步:

select a.sql_id, a.ratio, a.executions
from  
(
  select sql_id, buffer_gets / executions ratio, executions
  from v$sql
  where executions > 10
  order by 2 desc
) a
where rownum <= 10
Run Code Online (Sandbox Code Playgroud)