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


问题

您希望在 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;

更新日期:2020 年 12 月 5 日

已阅读 3 千次

开启您的职业生涯

完成课程以获取认证

立即开始
广告