查看: 2902|回复: 7

怎么估算一段时间里,几条SQL所占用的时间

[复制链接]
论坛徽章:
0
跳转到指定楼层
1#
发表于 2007-7-20 01:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由statspack报告能知道某几个较差的sql语句占报告期间的运行时间吗?
或者有什么办法判断一段程序运行的8个小时里,几条指点的sql大约占用多少时间,能用什么方法估算出来吗?


statpack SQL报告里面下面的%Total Time (s) Time (s) 是什么意思。单位是秒吧?
Buffer Gets Executions Gets per Exec %Total Time (s) Time (s) Hash Value
--------------- ------------ -------------- ------ -------- --------- ----------
74,380 20 3,719.0 42.6 0.00 5.03 1027916473
select count(*) from table

谢谢高人指点,指点
论坛徽章:
139
2009日食纪念
日期:2009-07-22 09:30:00ITPUB8周年纪念徽章
日期:2009-09-27 10:21:21祖国60周年纪念徽章
日期:2009-10-09 08:28:002010年世界杯参赛球队:葡萄牙
日期:2010-01-18 09:23:302010年世界杯参赛球队:意大利
日期:2010-01-21 07:30:192010年世界杯参赛球队:南非
日期:2010-01-22 09:48:242010年世界杯参赛球队:加纳
日期:2010-02-13 16:34:422010新春纪念徽章
日期:2010-03-01 11:04:572010年世界杯参赛球队:斯洛伐克
日期:2010-05-21 11:24:312010年世界杯参赛球队:塞尔维亚
日期:2010-06-30 13:43:14
2#
发表于 2007-7-20 07:29 | 只看该作者
10046 event trace

使用道具 举报

回复
论坛徽章:
5
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44行业板块每日发贴之星
日期:2008-07-01 01:02:17
3#
发表于 2007-7-20 07:30 | 只看该作者
对,这里的Time (s)就是这条sql总共允许时间

使用道具 举报

回复
论坛徽章:
131
2006年度最佳技术回答
日期:2007-01-24 12:58:48福特
日期:2013-10-24 13:57:422014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142013年新春福章
日期:2013-02-25 14:51:24
4#
发表于 2007-7-20 08:42 | 只看该作者
[php]
....................................................CPU.......Elapsd
  Buffer Gets    Executions  Gets per Exec  %Total Time (s)  Time (s) Hash Value
--------------- ------------ -------------- ------ -------- --------- ----------
     57,829,948          686       84,300.2   17.0   994.30   2768.46 3580151673
...
[/php]
17.0  == %Total
994.30   =CPU Times
2768.46 =Elapsed Times

使用道具 举报

回复
论坛徽章:
131
2006年度最佳技术回答
日期:2007-01-24 12:58:48福特
日期:2013-10-24 13:57:422014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142013年新春福章
日期:2013-02-25 14:51:24
5#
发表于 2007-7-20 08:50 | 只看该作者
%CPU 在9i 的DB里只能自己估算,找到
CPU used by this session                   1,143,177          317.5         59.9
要第一个值/100,得到Total CPU秒数
然后用top sql里的cpu time / Total CPU 就可以得到 CPU%

从理论上来说,你可以自己改spreport.sql 来增加一个Top CPU 的section

使用道具 举报

回复
论坛徽章:
44
2015年新春福章
日期:2015-03-06 11:57:312012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-01-04 11:53:29ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562012新春纪念徽章
日期:2012-02-13 15:10:58
6#
发表于 2007-7-20 09:09 | 只看该作者
刚看了 10046 event trace,例如跟踪控制文件
alter session set events 'immediate trace name CONTROLF level 10';
是不是执行了以上命令后去init.ora里user_dump_dest对应的文件看控制文件的变化就行呀,是控制文件有变化在对于的那个文件里就能体现出来吗?

使用道具 举报

回复
论坛徽章:
0
7#
 楼主| 发表于 2007-7-20 18:20 | 只看该作者
rollingpig, 谢谢! CPU Times 和Elapsed Times区别是什么?
17.0 == %Total
994.30 =CPU Times
2768.46 =Elapsed Times

17.0 == %Total ,这个百分比是不就是说这条语句在这段时间占用的时间?
不是有17.0 == %Total,你怎么还说用下面的方法来估算百分比?
%CPU 在9i 的DB里只能自己估算,找到
CPU used by this session 1,143,177 317.5 59.9
要第一个值/100,得到Total CPU秒数
然后用top sql里的cpu time / Total CPU 就可以得到 CPU%

使用道具 举报

回复
论坛徽章:
0
8#
 楼主| 发表于 2007-7-21 22:49 | 只看该作者
顶起来,讨论下

使用道具 举报

回复

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

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表