Analysing Statspack 2      

命中率陷阱

原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-2/

作者:Jonathan Lewis

了解Statspack的报告的一个重要的事情是要甄别出哪些内容是不需要看的,下面就是一个例子:

Instance Efficiency Percentages (Target 100%)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buffer Nowait %: 100.00 Redo NoWait %: 100.00
Buffer Hit %: 100.00 In-memory Sort %: 100.00
Library Hit %: 99.96 Soft Parse %: 99.00
Execute to Parse %: 98.02 Latch Hit %: 100.00
Parse CPU to Parse Elapsd %: 92.74 % Non-Parse CPU: 98.56

Instance Efficiency 汇总这一部分报告内容实质上是没有用的,至少是在企图通过个别的报告就希望定位到问题所在的情况下。

那么上面的汇总数据又能说明些什么呢?我们继续监控下内存中的数据,所有的排序都在内存中,大部分的解析都是软解析,继续监控下library cache中的对象,每次解析都执行了很多次,解析只占用了少量的cpu时间。

唯一可能会导致性能不佳的地方就是92.74%的数据项,数据显示在解析的时候损失了一点时间,但解析本身所占的比重也是微乎其微,这关系大吗?

事实上,这个实例已经显示出严重的响应时间,系统已超额负载。原因主要有三个主要的设计缺陷,但却不容易发现。但数据显示唯一可疑的地方是92.74%,但我们如何来减少解析的时间开销呢,一种可能恐怕只能让cpu疯狂的工作。

记住:百分比(或者命中率)会隐藏scale。如果每分钟执行一次解析,那么100%硬解析也并非就一定是坏事。但如果每分钟10,000次解析,那么100%的软解析对系统来说也会是灾难,但应当排除使用会话缓存的cursor,但系统仍然记录为一次解析调用的情形。

对于一次解析,1000次执行的具有高达99.9%命中率的情形,如果其中900次的执行都毫无意义,那又何尝是好的设计呢。

如果你确实希望观察一下实例的命中率模型数据,花费一点时间去看一下 Load Profile 部分,尤其是‘每秒’的统计,来决定你的实例是否在合理的工作状态,要时刻的记住平衡原则:如果你把头放在冰桶里,脚放在火堆了,平衡一下你应该是感到最舒服。

最新文章

  1. 移动端web开发,click touch tap区别
  2. 七牛整合PHP上传文件
  3. MEF搜索范围
  4. Java for LeetCode 231 Power of Two
  5. ReentrantLock的使用
  6. stl 中List vector deque区别
  7. UI进阶 CocoaPods的安装使用步骤
  8. CSS3 背景
  9. 带你轻松玩转Git--图解三区结构
  10. Swift 2.0 单例的用法
  11. Python模块之信号学习(signal)
  12. GDAL库扩展Landsat系列MTL文件格式支持
  13. Leetcode_70_Climbing Stairs
  14. JS对json操作的扩展
  15. 使用 dom4j 处理 xml (2)
  16. Vue之vuex实现简易计算器
  17. 20155339 2016-2017-2 《Java程序设计》第3周学习总结
  18. HDU4022 Bombing STL
  19. SQLAlchemy 进阶
  20. Python3 面向对象(1)

热门文章

  1. Android网络对讲机的实现
  2. 启动 XPs 代理
  3. 从两个集合里排除重复的写法(适用:DB表和字段都很多,表间有关联的情况)
  4. Object-C日志记录
  5. JavaScript学习笔记 -- ES6学习(二) let 和const
  6. HDU 1175 连连看(BFS)
  7. 九度OJ 1107 搬水果 -- 哈夫曼树 2011年吉林大学计算机研究生机试真题
  8. datatable的数据转置
  9. Polygon Table - Google Chrome
  10. 支持HTML5 SqlLite的AndroidApp