为什么 statspack report Parse CPU to Parse Elapsd% 有时候 >100%
上一篇 /
下一篇 2006-12-04 00:00:00
/ 个人分类:My Oracle Article
只是计算误差而已,四舍五入?
从机理上来说,应该是measument的误差,怎么理解呢?
CPU Time是一点一点纪录,并累加的(按SQL Parse 中的每个Call)
而Elapsed Time 是一段一段纪录,并累加的(按SQL 一次parse)
比如说,现在开始一个 parse , 中间有100次call, 本来每次应该是 0.8 微秒,但是,Oracle 纪录时每次计成是 1 微秒,结果,这一次的parse CPU 被记录成 100 微秒。而Elapsed Time 纪录的是整个的时间,等于 0.8 *100 + (wait time),结果就可能小于 100 微秒。
而最终结果就是 Parse CPU to Parse Elapsd% > 100%
其实在V$SQL里面经常看到 Elapsed Time > CPU Time
代码:
SELECT sum(CASE WHEN elapsed_time > cpu_time THEN 0 ELSE 1 end),
sum(CASE WHEN elapsed_time > cpu_time THEN 1 ELSE 0 end),Count(*)
FROM v$sql
Elaped〈 CPU Elaped 〉CPU Total SQL
14006 21313 35319
...
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: