Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

163

积分

0

好友

12

主题
1#
发表于 2015-2-28 15:12:26 | 查看: 7907| 回复: 2
简单说 :
    一条sql语句出现在v$active_session_history ,我能否能过wait_time+time_waited来计算他的执行的总时长.

   还是要用在v$active_session_history中这条sql出现的count(*)值 ,来近似的估算 这个sql的总时长?

谢谢!
2#
发表于 2015-3-2 17:05:55
Liu Maclean(刘相兵 发表于 2015-3-2 15:09
官方文档说的很清楚
If a wait event lasted for more than a second and was caught waiting in more than ...

我能不能理解为 "按照最后一行的TIME_WAITED可以计算出actual time spent waiting for that wait event"  只是说明这个sql_id花在这个等待事件的时间, 而不是总消耗时长.

举个例子:
如果一条sql 执行了3秒种,这三秒中发生的行为比如有ON CPU ,和waiting .两种状态 . 即有3条记录保存在v$active_session_history .
我应该不能用wait_time + time_waited(或是最后一条的time_waited) 来得到这条sql 总共执行了多少时长吧 ?

谢谢!

回复 显示全部楼层 道具 举报

3#
发表于 2015-3-3 09:00:06
Liu Maclean(刘相兵 发表于 2015-3-2 20:38
ash 并不能真正“完全意义上”追踪一条SQL的运行, 所以上面说的是 若一次等待在ash中出现多行,按照最后一 ...

OK,明白了

题外话,好象11g版本后v$active_session_history中多了一些字段,
如TM_DELTA_TIME , DELTA_TIME ,根据实际测试,感觉 近似过实际的SQL耗时.

回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-6-14 20:33 , Processed in 0.049280 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569