statspack系列2
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 部分,尤其是‘每秒’的统计,来决定你的实例是否在合理的工作状态,要时刻的记住平衡原则:如果你把头放在冰桶里,脚放在火堆了,平衡一下你应该是感到最舒服。
statspack系列2的更多相关文章
- statspack系列8
原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-8/ 作者:Jonathan Lewis 在前面的关于stat ...
- statspack系列7
原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-7/ 作者:Jonathan Lewis 这是一段Oracle ...
- statspack系列4
原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-4/ 作者:Jonathan Lewis 使用statspac ...
- statspack系列3
原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-3/ 作者:Jonathan Lewis 下面的例子中的结果并 ...
- statspack系列6
原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-6/ 作者:Jonathan Lewis 下面是一段时间以前网 ...
- statspack系列5
原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-5/ 作者:Jonathan Lewis 前些天,有人给我发了 ...
- 蓝色的成长记录——追逐DBA(8):为了夺回SP报告,回顾oracle的STATSPACK实验
***********************************************声明*************************************************** ...
- .Net程序员学用Oracle系列(30):零碎补充、最后总结(The End)
1.同义词 2.Flashback 技术 3.连接字符串的写法 4.转义字符 & 特殊运算符 5.文件类型 6.查看参数 & 修改参数 7.AWR 工具 8.学习方法 & 学习 ...
- 【等待事件】等待事件系列(5.1)--Enqueue(队列等待)
[等待事件]等待事件系列(5.1)--Enqueue(队列等待) 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可 ...
随机推荐
- Visual C++ 打印编程技术-编程基础
背景: windows产生前,操作系统(如DOS等)都不提供支持图像处理的打印机驱动程序,使得程序员为打印出图像,不得不针对使用的打印机 自己编写设备驱动程序,导致了大量的.不必要的重复开发. 随着w ...
- 无可匹敌的创建job(细化很多细节)
declare jobno binary_integer ; rm_days number := 15; --保留多少天的数据,单位天数 rm_hour ...
- O-C相关05:方法的封装.
前言:在 OC 中进行封装, 就是实现设置实例变量和获取实例变量数据的方法, 常常称为 setter 方法和 getter 方法. 或称为 get set 读写器. 1,setter 方法 sette ...
- html-----008
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Java实战之01Struts2-05contextMAP、EL、OGNL
十五.contextMap 1.动作类的生命周期 明确:动作类是多例的,每次动作访问,动作类都会实例化.所以是线程安全的.与Struts1的区别是,struts1的动作类是单例的. 2.请求动作的数据 ...
- storm学习之入门篇(一)
海量数据处理使用的大多是鼎鼎大名的hadoop或者hive,作为一个批处理系统,hadoop以其吞吐量大.自动容错等优点,在海量数据处理上得到了广泛的使用.但是,hadoop不擅长实时计算,因为它天然 ...
- CodeFirst 的编程方式
第一步:创建控制台项目第二步:添加新建项目→Ado.Net空实体模型第三步:添加实体:Customer,添加几个必要的测试字段第四步:添加实体之间的联系第五步:根据模型生成数据库脚本,并执行sql脚本 ...
- mysql 主从搭建步骤
mysql 主从搭建步骤 1:主库开启master端bin-log 2:主库创建备份用户 3:主库全备 4:从库导入全备数据 5:从库修改change master to信息 6:从库slave st ...
- variable-precision SWAR算法:计算Hamming Weight
variable-precision SWAR算法:计算Hamming Weight 转自我的Github 最近看书看到了一个计算Hamming Weight的算法,觉得挺巧妙的,纪录一下. Hamm ...
- top工具
top 显示进程所占系统资源 能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top命令打印出了很多信息,包括系统负载(loadaverage).进程数(Tasks).c ...