在Oracle中,如何从执行计划初步判断SQL的性能问题?
从以下几点去考虑:
l 执行计划关注点
l 预估返回行数
l 真实返回行与逻辑读比率
l 预估行数和真实返回行数的差异
l Predicate Information部分是否有隐式类型转换
l 递归调用(recursive calls)值是否过大
l 表的访问次数是否过大
l 注意表真实访问行数
l 查看是否在磁盘排序
l 注意A-Time时间列
l 注意Pstart、Pstop、PARTITION RANGE ALL
l 注意MERGE JOIN CARTESIAN
l 注意REMOTE分布式查询
l 注意动态采样
l 是否使用了某种固定执行计划的策略
详情可以从下表所示的几个方面去考虑:
此外,还有一些其它需要注意的地方,例如COST花费特别大的步骤、全表扫描的步骤、FILTER的操作等等,都是需要特别关注的地方,这里就不详细列举了,总之,看执行计划和看AWR报告一样,需要具有一双敏锐的鹰眼,最主要的是找出SQL的性能瓶颈。
本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
详细内容可以添加麦老师微信或QQ私聊。
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:618766405
● 提供OCP、OCM和高可用部分最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
DBA宝典
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。
本文分享自微信公众号 - DB宝(lhrdba)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。