要找出数据库花费在等待资源而不是实际执行上的时间百分比很简单。执行以下查询找出一个数据库中等待时间和实际执行时间的相对百分比:
1 select metric_name,value
2 from v$sysmetric
3 where metric_name in('Database CPU Time Ratio',
4 'Database Wait Time Ratio') and
5 intsize_csec =
6* (select max(intsize_csec) from v$sysmetric)
SYS@orcl> /
METRIC_NAME VALUE
---------------------------------------------------------------- ----------
Database Wait Time Ratio 0
Database CPU Time Ratio 112.792
2 rows selected.
如果这个查询得到的数据库等待时间比(Database Waite Time Ratio)是一个很高的值,或者如果数据库等待时间比要比数据库CPU时间比大很多,那么数据库就是将更多的时间花费在了等待上而不是处理上,你必须深入分析Oracle等待事件,以确定导致这种情况的具体等待事件。
参考:
V$SESSION
V$SESSION_WAIT
V$SESSION_WAIT_HISTORY
V$SESSION_EVENT
V$SYSTEM_EVENT
V$SYSTEM_WAIT_CLASS
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28824105/viewspace-1665628/
,如需转载,请注明出处,否则将追究法律责任。