li
  当前位置:主页 > 性能优化 > 文章内容
li
oracle优化:oracle诊断性能问题
来源: www.ixdba.net  作者: IXDBA.NET官方    时间:2007-12-23   阅读:48  
本文章共5732字,分4页,当前第1页,快速翻页:
 

使用扩展SQL跟踪数据来了解是什么在耗费这么长的时间。

假如有一天你开车去上班,但最后还是没能及时参加一个重要会议。你无法将你的革命性的想法呈现给客户,所以他们也不会采用。你的拖拖拉拉使你感到沮丧,你发誓决不再犯同样的错误。那么,为了不再发生类似情况,你怎么判断问题的原因呢?按照下面这个列表进行检查怎么样?

·      检查汽车外表是否有缺陷,因为外表有缺陷会使汽车的最高速度降低1%或更多。

·      检查车轮定位,因为外倾角、后倾角或前束角不合适都会导致汽车的操纵不灵活并且耗费时间。

www.ixdba.net


·      检查发动机,以确保达到额定马力的99%或更高。如果不是这样,则要考虑重装或更换发动机。

不,你可能不会采用这种检查方法;那样太可笑了。你可能会以完全不同的方式来判断问题之所在,可能只是问你自己一个简单的问题:什么事情让我花了这么长时间?

从这个角度出发,问题就迎刃而解了。如果开车需要40分钟,而你在会议开始前20分钟才动身,那么下次就要提前30分钟动身。如果因为交通拥堵浪费了20分钟,那么,下次要么再早一些动身,换条路线,要么更仔细地查看早7点的路况报告。如果是你迷了路,结果浪费了20分钟去兜圈子,那么下次你大概就要事先看看地图。如此等等。

我感到奇怪的是,那些擅长解决日常性能优化问题的数据库专业人员在工作中却使用完全不同的方法来解决数据库性能问题。许多数据库"调优人员"从来不问,"是什么让这个程序运行了这么长时间?"相反,他们会参考检查内容清单,并试图阻止错误发生:

·      检查所有Oracle块请求是否都由数据库缓存提供服务

·      检查是否有全表扫描

·      检查所有排序是否都在内存中进行

·      检查重做日志是否与其他所有数据库文件进行了适当的隔离

等等。

对于某些工作来说,使用检查内容清单也许很好。但是对于判断性能问题这样的工作,试图确定理论上可能会出错的每一件事,从而对这个问题进行处理的做法的效率会很低。更有效的方法就是找到这个简单问题的答案:

是什么花了这么长时间?

用于优化Oracle程序的好的策略就如同日常生活中用到的策略。就像这样:

1.   使用专门的仪器来测定程序的性能,从而监视运行速度慢的程序。

2.   为运行慢的程序创建资源描述,把程序的响应时间细分为几种有用的类型。

3.   通过首先处理响应时间最长的部分来缩短程序的响应时间。

当你了解了若干技术细节之后,这个方法就非常简单了。如果你真的这样做,那么每次你都能获得一个有用的方法,久而久之,你将能在进行性能改进之前预知其结果。

跟踪

如果你有用于收集程序中每个执行步骤的时间统计信息的高级工具,那就用吧。但只收集汇总数据(如通过对系统全局区[SGA]或其基础共享存储段采样获得的数据)的工具对于某些类型的问题就不适合。

使用昂贵的监控工具时最常见的汇总错误是它们会跨整个Oracle数据库实例来汇总某一给定时间间隔内资源的使用情况。但是,运行速度慢的程序实际上可能不受资源争用问题的影响,而这个问题却完全控制着系统中一些不太重要的程序的性能。

即便是那些在Oracle数据库会话级上汇总信息的工具在诊断一些重要的问题类型时也存在着缺陷。例如,假设一个程序运行10分钟,调用了10000Oracle SQL*Net message from client 这一"等待事件",会话等待该事件的总用时为8.3分钟。这意味着会话对SQL*Net message from client事件的等待时间平均为3秒。但是单从汇总数据看,你无法知道这



阅读更多内容1 · 2 · 3 · 4 · 下一页>>


  上一篇: 强烈推荐:ORACLE学习笔记--性能优...   下一篇: 关于数据库open的深入探究
li
 §相关评论  
 热点文章

·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 编辑推荐
·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 相关篇章
·强烈推荐:ORACLE学习笔记--性能优...
·PGA:关于pga_aggregate_target的...
·我的一个总结:检查点SCN深入研究
·解读oracle控制文件
·ORACLE SQL性能优化系列 (一)
·Latch与lock示疑
·利用冷备创建standby
·Oracle9iR2 Data Guard的保护模式
·关于HWM的一点研究
·数据库物理分布设计
·关于数据库open的深入探究
·强烈推荐:oracle10g+rac配置sta...
·32bit oracle 扩展SGA原理
·问题释疑:如何配置才能使客户端...
·oracle大师谈:OS与oracle异同探...
·案例分析:ora-04031与ora-04030...
·案例分析:ORA-01000: maximum o...
·案例分析:ORA-01178错误释疑
·案例分析:ORA-01461错误
·案例分析:ORA-12500错误案例
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接