시소당
select /*+ordered */를 사용하여 from 절에 기술된 순서대로 조인시 드라이빙 되게한다. 결국 가장 가까이 있는 테이블이 드라이빙 테이블이 된다. 옵티마이져는 from절의 맨 뒤 테이블을 드라이빙 테이블로 설정하여 실행계획을 작성한다.
 상수값이 먼저 풀리고 where 에서 먼 테이블부터 드라이빙 된다. 그러므로 조건절의 조건 순서대로 결합인덱스를 걸어 주어야 한다.
 In 는 결국 or로 풀린다. 그러나 or는 rowid와 함께 사용할 수 없기 때문에 in-line view와 union all을 사용한다.
예) select nvl(code,’’), nvl(desc,’’)
from items
where code like :b1
and item_type in (‘ca’,’da’)
and rownum < 21;
<개선안>
select nvl(code,’’), nvl(desc,’’)
from (select code, desc from items
where code like :b1 and item_type = ‘ca’
union all
select code, desc from items
where code like :b1 and item_type = ‘da’)
where rownum < 21;