如何在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;