您的位置:首页 > 数据库 > Oracle

分析 Oracle SQL 执行计划的关注点

2017-06-20 13:16 537 查看
本文内容摘自《剑破冰山——Oracle开发艺术》一书。

1、判定主要矛盾

在遇到复杂 SQL 语句时,执行计划也非常复杂,往往让人分析起来觉得无从下手,此时应避免顺序解决问题,而是快速定位抓住主要矛盾,这样就能做到真正的高效调优。

2、返回行与逻辑读的比率

一般而言,每获取一行开销 5 个以下的逻辑读是大致可接受的范围。为什么不关注物理读而关注逻辑读呢?因为每次执行时,物理读会随着 BUFFER CACHE 的命中而不断变化,而逻辑读在多次反复执行后基本保持不变。

3、聚合查询

优化聚合查询时,返回行数应理解为聚合的总行数,而不是真实的返回行数。索引的大小相当于索引列字段大小加上 ROWID,所以一般情况下索引要比表小得多。

4、返回行的数量

优化是有尽头的,不能为了优化而优化,在某些场合当优化很难有明显效果时,就无需在这方面浪费时间了,而应更多考虑并行处理、提升硬件性能等方法。

5、Oracle 预测行准确与否

Oracle 预测失真往往意味着 SQL 的执行效率将不是最优的,需要找到预测失真的原因,并加以改进。

6、Predicate Information

关注 Predicate Information 最重要的一点在于,查看是否有发生数据类型转换。


本文链接http://www.cnblogs.com/hanzongze/p/oracle-sql-plan.html

版权声明:本文为博客园博主 韩宗泽 原创,作者保留署名权!欢迎通过转载、演绎或其它传播方式来使用本文,但必须在明显位置给出作者署名和本文链接!个人博客,能力有限,若有不当之处,敬请批评指正,谢谢!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: