日期:2014-05-16  浏览次数:20465 次

Parse CPU to Parse Elapsd%的理解

Parse CPU to Parse Elapsd%是指sql语句的CPU时间与总体解析时间的比率, SQL总体解析时间包括CPU时间和wait时间,这个比率过低说明SQL Parse的wait时间远远大于CPU的 Parse时间不是很正常,可能有大量lib cache latch or shared pool latch。

?? 有时候Parse CPU to Parse Elapsd%会超过100%,这是由于四舍五入造成的,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%

?? Parse CPU to Parse Elapsd%的相关的统计信息可以从statspack中的Instance Activity Stats部门能够查到如:

parse time cpu????????????????????????????? 13,305??????????? 3.5????????? 0.2

parse time elapsed?????????????????????????? 84,624?????????? 22.1????????? 0.9

?? Parse CPU to Parse Elapsd%过低一般是由于latch争用造成的,需要具体问题具体分析,经常伴随较高的latch free和enqueue等待事件。