如何在 Oracle 中监控实时 SQL 执行统计信息?

oraclesoftware & codingprogramming

问题:

您想监控 Oracle 中当前正在执行的 SQL 统计信息。

解决方案

如果您的数据库是 Oracle Database 11g,您可以使用以下查询从"V$SQL_MONITOR"中进行选择,以监控 SQL 查询的近实时资源消耗情况。

"V$SQL_MONITOR"中的统计信息每秒更新一次。这有助于我们查看更新时的资源消耗情况。默认情况下,当 SQL 语句并行运行或消耗超过 5 秒的 CPU 或 I/O 时间时,会收集这些统计信息。

"V$SQL_MONITOR"视图包含"V$SQL"、"V$SQLAREA"和"V$SQLSTATS"视图中包含的统计信息子集。

"V$SQL_MONITOR"视图显示每次执行资源密集型 SQL 语句的实时统计信息,而"V$SQL"、"V$SQLAREA"和"V$SQLSTATS"包含多次执行 SQL 语句时的所有统计信息。

示例

select * from ( select  a.sid session_id ,a.sql_id ,a.status ,a.cpu_time/1000000 cpu_sec ,a.buffer_gets ,a.disk_reads ,b.sql_text sql_text from v$sql_monitor a     ,v$sql b where a.sql_id = b.sql_id order by a.cpu_time desc) where rownum <=10;


相关文章