解决Oracle SQL语句性能问题——SQL语句改写(in、not in、exists及not exists)

8. in改为join

in为Oracle数据库支持的条件语法,该语法会使得代码看起来思路清晰,逻辑分明。该语法有时也会导致SQL语句产生次优的执行计划,而导致SQL语句的性能问题。因此,为了解决相关SQL语句的性能问题,有时我们需要通过join来改写和消除in,具体改写方法如下所示。

--改写前

SQL> select t1.col1

from tab1 t1

where t1.col2 in

(

select col1

from tab2

where col2=...

and col3>...

);

你可能感兴趣的:(Oracle,SQL性能优化与实例解析,in,not,exists,join,SQL改写)