PUSH_PRED 힌트는 메인 쿼리의 WHERE 조건을 서브쿼리 내부로 밀어넣어 서브쿼리에 대한 프레디케이트 푸시다운(Predicate Pushdown) 을 강제하는 힌트입니다. 특정 상황에서는 실행 성능을 최적화할 수 있습니다.
SELECT /*+ PUSH_PRED */ *
FROM (
SELECT emp.*, dept.dname
FROM emp
JOIN dept ON emp.deptno = dept.deptno
) sub
WHERE sub.sal > 3000; 위와 같은 구조에서 PUSH_PRED 힌트를 사용하면 sub.sal > 3000 조건이 서브쿼리 내부로 밀려들어가 조인 이후가 아니라 조인 전에 필터링될 가능성이 커집니다.
PUSH_PRED가 항상 성능을 향상시키는 것은 아닙니다. 경우에 따라서는 오히려 최적화된 실행 계획을 방해할 수도 있음.PUSH_SUBQINLINESELECT /*+ INLINE PUSH_PRED */ *
FROM (
SELECT emp.*, dept.dname
FROM emp
JOIN dept ON emp.deptno = dept.deptno
) sub
WHERE sub.sal > 3000; 이런 힌트를 조합하면 옵티마이저가 서브쿼리를 최적화하는 방식에 영향을 줄 수 있습니다.
결론:
PUSH_PRED는 서브쿼리 내에서 WHERE 조건을 미리 적용하여 불필요한 데이터 스캔을 줄이는 데 유용함.PUSH_SUBQ, INLINE 힌트와 함께 사용하면 더 효과적일 수 있음.요양원 선택 전 반드시 확인해야 할 체크리스트를 공개합니다. 공식 평가 자료 조회법, 방문 시 확인…
공공기관 채용 비리의 실태와 피해 지원자의 대응법을 정리했습니다. 채용 비리 신고 방법, 공익신고자 보호제도, 취준생…
주식 손실을 세금 절약에 활용하는 합법적 방법을 공개합니다. 해외주식 손익통산, ISA 계좌 활용, 연금계좌 절세까지…
배달이 예상 시간보다 크게 늦으면 취소·환불을 요청할 수 있습니다. 배달앱별 지연 취소 방법과 잘못 배달됐을…
통신비 절약의 핵심은 요금제 최적화입니다. 내 데이터 사용량 확인법, 알뜰폰 전환 비교, 위약금 없이 요금제…