• 博客访问: 1620346
  • 博文数量: 309
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-26 17:02
  • 认证徽章:
个人简介

暂无介绍

ITPUB论坛APP

ITPUB论坛APP



APP发帖 享双倍积分

文章分类
文章存档

2006年(222)

2005年(70)

2004年(17)

我的朋友
微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

订阅
热词专题

分类: Linux

只是计算误差而已,四舍五入?


从机理上来说,应该是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
...

阅读(2189) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册