解决Oracle SQL语句性能问题——SQL语句改写(join、集合)

14. join改为exists

join是Oracle支持的连接语法,有些场景中,该语法不但可以提高SQL语句的可读性,还可以使SQL语句获得很好的性能。但有些场景中,该语法会导致SQL语句产生次优的执行计划,从而引起SQL语句的性能问题。因此,为了解决相关SQL语句的性能问题,有时我们需要通过exists来改写和消除join,具体改写方法如下所示。

--改写前

SQL> select distinct t1.col1

from tab1 t1,tab2 t2

where t1.col2=...

and t2.col1=...

and t1.col3=t2.col2;

--改写后

SQL> select distinct col1 from tab1

你可能感兴趣的:(Oracle,SQL性能优化与实例解析,sql,join,exists,union,minus)