"EARLIER Filter 서브쿼리"의 두 판 사이의 차이
DB CAFE
(같은 사용자의 중간 판 6개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | # Filter 서브쿼리를 최대한 먼저 실행 시키도록 함 | + | {{틀:고지상자 |
+ | |제목 = EARLIER Filter 서브쿼리 | ||
+ | |내용 =# Filter 서브쿼리를 최대한 먼저 실행 시키도록 함 | ||
# From 절에서 여러 테이블과 조인 되더라도 서브쿼리와 조인조건으로 연결된 테이블이 수행되면 바로 서브쿼리가 수행됨. | # From 절에서 여러 테이블과 조인 되더라도 서브쿼리와 조인조건으로 연결된 테이블이 수행되면 바로 서브쿼리가 수행됨. | ||
+ | }} | ||
+ | ---- | ||
+ | |||
<source lang=sql> | <source lang=sql> | ||
SELECT /**/ | SELECT /**/ | ||
14번째 줄: | 19번째 줄: | ||
) | ) | ||
</source> | </source> | ||
+ | * NO_UNNEST : 필터처리 하도록 함 | ||
+ | * PUSH_SUBQ : A(ORDERS) SCAN시 연결된 서브쿼리를 실행 함, 메인쿼리가 먼저 수행되는 상관쿼리이며 서브쿼리 캐싱 효과 발생 | ||
+ | ---- | ||
+ | |||
+ | {{:FILTER 서브쿼리}} | ||
+ | [[category:oracle]] |
2023년 4월 5일 (수) 18:34 기준 최신판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
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시 연결된 서브쿼리를 실행 함, 메인쿼리가 먼저 수행되는 상관쿼리이며 서브쿼리 캐싱 효과 발생