행위

"EARLIER Filter 서브쿼리"의 두 판 사이의 차이

DB CAFE

1번째 줄: 1번째 줄:
# Filter 서브쿼리를 최대한 먼저 실행 시키도록 함
+
{{틀:고지상자
 +
|제목 = EARLIER Filter 서브쿼리
 +
|내용 =# Filter 서브쿼리를 최대한 먼저 실행 시키도록 함
 
# From 절에서 여러 테이블과 조인 되더라도 서브쿼리와 조인조건으로 연결된 테이블이 수행되면 바로 서브쿼리가 수행됨.
 
# From 절에서 여러 테이블과 조인 되더라도 서브쿼리와 조인조건으로 연결된 테이블이 수행되면 바로 서브쿼리가 수행됨.
 +
}}
 +
----
 +
 
<source lang=sql>
 
<source lang=sql>
 
SELECT /**/
 
SELECT /**/

2022년 2월 9일 (수) 22:28 판

thumb_up 추천메뉴 바로가기



  1. Filter 서브쿼리를 최대한 먼저 실행 시키도록 함
  2. From 절에서 여러 테이블과 조인 되더라도 서브쿼리와 조인조건으로 연결된 테이블이 수행되면 바로 서브쿼리가 수행됨.



SELECT /**/
     A.ORDER_ID
  FROM ORDERS A
     , CUSTERMERS B
 WHERE A.CUSTOMER_ID = B.CUSTOMER_ID(+)
....
   AND EXISTS (SELECT /*+ NO_UNNEST PUSH_SUBQ */ 1
                 FROM EMPLOYEES C
                WHERE ''A.EMPLOYEE_ID = C.EMPLOYEE_ID''
                  AND ....
               )
  • NO_UNNEST : 필터처리 하도록 함
  • PUSH_SUBQ : A(ORDERS) SCAN시 연결된 서브쿼리를 실행 함, 메인쿼리가 먼저 수행되는 상관쿼리이며 서브쿼리 캐싱 효과 발생