Oracle SQL执行计划变化原因

性能优化最难的是能够在海量信息中找到优化的方向,抓住要点。当找到优化方向后,采用的优化技术往往非常简单,甚至不起眼。进行性能优化时,不在于你掌握了多少种技术,使用了多少种工具,而在于找到一种适合自己的实用的方法。比如查看SQL的执行计划有很多种方法,但我们不需要掌握每种方法,通常只需要掌握其中一到两种自己最擅长的方法即可。以下为笔者的性能问题处理流程,供读者参考:
(1)制定一个简单可行的沟通机制,了解系统的变更情况。
(2)不要让系统意外宕机。
(3)明确优化目标,切忌无止境的优化。
(4)不要一个人战斗,了解你能够获得的其他支持力量。
(5)部署性能监控工具(如OSW),记录下当前主机资源的使用情况。
(6)查看V$SESSION_WAIT视图,获取STATSPACK/AWR报告。
(7)快速分析,制定优化方案和实施计划。
(8)定位故障。
(9)再次沟通,审核优化方案和实施计划。
(10)实施优化方案,做好回退机制。
(11)优化效果评估,如果没有达到预期,则重复6~10步骤。
(12)记录下这个成功案例,做到举一反三。
“尽信书,不如无书”。我们需灵活运用以上各种优化手段,切忌照搬照抄。优化完成之后,再针对优化成果建立新的数据库的性能基线。注意上述优化步骤并不是简单地串行化操作,而是一个相互迭代,循序渐进的过程。某些调整可能会产生意外的性能结果,如果在调整之前保存了以前的设置,那么回退不正确的调整就变得非常简单。
数据库性能优化涉及面很广。实践经验表明,在数据库性能优化的过程中,如果仅仅调整Oracle参数,一般只能提高20%左右的性能。而仅仅调整SQL执行计划,也往往也无法全面提高系统的性能。只有针对应用程序的代码级优化才能真正提高数据库的性能,当然这个优化成本也是最高的。
附件为Oracle SQL执行计划变化的处理流程,供参考。

猜你喜欢

转载自dbzone.iteye.com/blog/2432948