我正在寻找一个查询,它将返回一个高负载的sql语句列表.我不想使用任何Oracle工具,如ADDM或AWR.我需要一个查询语句,它将返回高负载的sql语句.
您可以直接查询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)