3.1.1 oracle性能改善方法
1 进行以下的初始化标准检查
a 从用户处得到可观的反馈。决定性能项目的范围和之后的目标以及未来的目标。这个过程是未来能力规划的关键。
b 得到操作系统,数据库以及应用的全部统计数据的集合,包括性能好喝坏的时候。如果这些不可用,那么需要获得可用时候的统计数据。丢失统计数据就像是在犯罪现场丢失了证据一样。这会使侦查更艰难花费的时间更长。
c 理智的检查所有和用户性能有关的所有操作系统。通过理智的检查所有的操作系统,你寻找充分使用的硬件或者操作系统资源。列出所有过度使用的资源作为稍后分析的症状。总的来说,核对所有硬件没有问题。
2 检查最经常出现的十个oracle错误,分析它们是否可能成为问题。将他们列出来做分析。这是必须的因为它展示了大多数最可能的问题。ADDM会自动检测和报告10个问题中的9个。可查看第六章 自动性能诊断,和racle系统的10个问题。
3 使用所有的症状在系统上建立一个概念模型去理解是什么原因导致了性能问题。可以查看 “对于性能概念模型的一个样例决定过程”。
4 对系统建议一系列的措施和行动,然后应用他们以达到最优化这个应用。对于每一个期望中的效果,ADDM提出了每一个建议。
5 使那些切望达到效果的改变生效,然后去查看用户是否感知到了性能的改善。否则,就查询更多的瓶颈,并且持续这个概念模型知道你所理解的应用变的越来越精确。
6 重复最后三步知道性能目标达到或者由于其它的约束变得不可能实现为止。
3.1.2 性能概念模型的样例决定过程
概念模型几乎是决定性的。但是随着你性能优化经验的增加,你会意识到没有现成的经验可循。一个灵活的首要的方法是需要解释各种各样的统计数据然后做出好的决策。
对于性能调优的快速简单的方法就是,使用ADDM,ADDM自动监视你的oracle系统并且提供解决性能问题的建议。例如,假设一个DBA接受到一个用户抱怨的电话说系统很慢。DBA简单检查最近的ADDM报告来查看使用哪个建议去实施解决这个问题。可以查看第六章 自动性能诊断 去查看关于监视和诊断oracle系统的功能。
以下的步骤解释了不是用自动诊断功能一个性能工程师怎样寻找瓶颈,这个步骤仅仅趋向于手工过程的引导。根据经验,性能工程师增加了相关的步骤。这个分析假设操作系统和数据库的统计数据都已经被收集好了。
1 在单用户在空负载或者轻负载的机器上响应时间是否可以接受?
如果不可以接受,那么应用可能在编码上或者设计上就不是优秀的,并且在多用户共享资源的情况下响应时间将永远不会被接受。在这种情况下,获取应用内部的统计数据,并且获得sql追踪和sql计划信息。和开发者一起调查数据索引,事务sql设计中的问题以及后台进程的潜在延迟工作。
2 是否所有的CPU被使用了?
如果内核的使用率超过了40%,那么调查操作系统对于网络的传输,页面调度,交换,或者进程紊乱。否则转移到用户空间的CPU使用。查看是否有任何非数据库工作在机器限制CPU资源共享资源总量的时候消耗CPU。例如备份,文件传输,打印请求,等等。在决定数据uzhengzai使用大多数的CPU的时候,调查最活跃sql的CPU使用率。这些描述是将来分析的基础。为了最优的执行检查SQL和事务的提交sql。oracle在V$SQL和V$SQLSTATS视图中提供了CPU的统计信息。
如果应用时最优的并且sql的执行并不低效,考虑在非高峰期安排一些工作或者使用更大的机器。
3 在这点上,系统性能是不符合要求的,然而CPU资源没有得到充分的使用。
在这点上,你有在服务器内连续的和非扩展的行为。获取从服务器上的等待事件的统计信息,并且决定最大的一系列的问题,如果没有连续的问题,那么问题最可能不在数据库,并且这应该是调查的焦点。等待事件的排除包括修改应用SQL和优化数据库参数。这个过程非常反复,并且需要有能力在等待事件上研究并且系统的排除一系列的问题点。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24799772/viewspace-678069/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24799772/viewspace-678069/