Oracle 11g new Feature 之 _sqlmon_threshold

前端之家收集整理的这篇文章主要介绍了Oracle 11g new Feature 之 _sqlmon_threshold前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


近期在用12c EM做实时监控(sql Monitor)时发现执行时间小于3秒的sql语句均未出现在列表中,在各种搜索后发现Oracle确实有个隐含参数可以控制受全监控sql是否被捕捉,即_sqlmon_threshold


1._sqlMON_THRESHOLD 默认值

该参数的出现其实是针对Oracle数据库就慢查询监控出现的特性即11g有个新特性,Real Time sql Monitor.

国外原文链接http://kerryosborne.oracle-guy.com/2008/10/oracle-11g-real-time-sql-monitoring/,其中这个功能对运行时间比较长的sql进行监控和记录。

为了启用这个特性,需要确保一下参数设置正确:
STATISTICS_LEVEL需要设置为typical(默认)或着all
CONTROL_MANAGEMENT_PACK_ACCESS需要设置为DIAGNOSTIC+TUNING(默认)


然而不是所有的sql都会被监控到,它默认只对以下两种情况的sql进行监控和记录:
sql运行时间超过5秒。通过隐含参数_sqlmon_threshold(单位为s)去控制,默认是5秒。此参数可以在session 和 system级别进行改变。默认情况下,该值如下:

sql>SELECT ksppinm,ksppstvl,ksppdescFROM x$ksppi x,x$ksppcv yWHERE x.indx = y.indx AND ksppinm = '_sqlmon_threshold'
sql> /

KSPPINM SPPSTVLKSPPDESC ------------------------- ---------------------- -------------------------------------------------------------------------------- _sqlmon_threshold 5 cpu/IO time threshold before a statement is monitored. 0 is disabled

猜你在找的Oracle相关文章