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>...
);