当心外部连接中的ON子句
在SQL tuning中,不良写法导致SQL执行效率比比皆是。最近的SQL tuning中一个外部连接写法不当导致过SQL执行时间超过15分钟左右此即
为一例。通过修正该SQL的写法之后,过高的逻辑读呈数量级下降以及SQL语句执行时间也大幅下降。下面给出一个列子来演示该情形。
一、创建演示环境
二、总结
1、尽可能避免SQL不良写法导致的不良后果
2、此例中由于将谓词信息放到ON子句中,在数据量庞大的表(百万行)连接中,则该写法导致过多的物理和逻辑I/O,使得中间结果集庞大
3、谓词信息放到ON子句中同时也导致索引失效
4、尽可能的在满足需求的情况下减小中间结果集
三、更多参考
dbms_xplan之display_cursor函数的使用