DB

PUSH_SUBQ ?

Lawmin 2011. 10. 3. 07:20
SELECT  *
FROM    A,
        (SELECT * FROM B, C WHERE B.ID = C.ID) E
WHERE   A.ID = E.ID

A가 건수가 작은 상황인데 PLAN 이 잘못 풀려 INLINE VIEW 인 E 내부가 먼저 수행되어 DRIVING TABLE이 되어 지연된다고 하면,

SELECT  /*+ PUSH_SUBQ */ *
FROM    A,
        (SELECT * FROM B, C WHERE B.ID = C.ID) E
WHERE   A.ID = E.ID

위와 같이 사용하여 바깥의 WHERE 절을 E 안쪽의 조건으로 PUSH 하면 빠른 결과를 얻을 수 있다.

근데 이건 inline view 아닌가? 어찌 subquery 힌트를 먹는거지?