"실행계획 조인 읽는 순서"의 두 판 사이의 차이
DB CAFE
(내용을 "== 실행계획에서 조인 읽는 방법 == 파일:조인순서.jpg ---- Category:oracle"(으)로 바꿈) (태그: 대체됨) |
(→실행계획에서 조인 읽는 방법) |
||
(같은 사용자의 중간 판 3개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
== 실행계획에서 조인 읽는 방법 == | == 실행계획에서 조인 읽는 방법 == | ||
+ | # 안에서 바깥으로 | ||
+ | # 위에서 아래로 | ||
[[파일:조인순서.jpg]] | [[파일:조인순서.jpg]] | ||
+ | === 예외적인 사항 === | ||
+ | # 해시조인 시 BUILD INPUT 처리시 | ||
+ | <source lang=sql> | ||
+ | SELECT /*+ leading(E) use_hash(D) swap_join_inputs(D) */ E.EMPNO, E.ENAME, E.SAL, D.DNAME | ||
+ | FROM DEPT D | ||
+ | INNER JOIN EMP E | ||
+ | ON D.DEPTNO = E.DEPTNO | ||
+ | AND E.SAL > 1500 | ||
+ | AND E.JOB = 'SALESMAN' | ||
+ | WHERE D.DNAME = 'SALES' | ||
+ | ; | ||
+ | |||
+ | |||
+ | Execution plan | ||
+ | ----------------------------------------------------------------- | ||
+ | | Id | Operation | Name | Card | Bytes | Cost (%CPU)| | ||
+ | ----------------------------------------------------------------- | ||
+ | | 0| SELECT STATEMENT | | 1 | 32 | 8 (0)| | ||
+ | |* 1| HASH JOIN | | 1 | 32 | 8 (0)| | ||
+ | |* 2| TABLE ACCESS FULL | DEPT | 1 | 13 | 4 (0)| | ||
+ | |* 3| TABLE ACCESS FULL | EMP | 2 | 50 | 4 (0)| | ||
+ | ----------------------------------------------------------------- | ||
+ | |||
+ | Predicate Information (identified by operation id): | ||
+ | ----------------------------------------------------------------- | ||
+ | 1 - access("D"."DEPTNO"="E"."DEPTNO") | ||
+ | ----------------------------------------------------------------- | ||
+ | </source> | ||
+ | # 해시조인 시 EARLIER FILTER 서브쿼리 | ||
+ | ## [[EARLIER Filter 서브쿼리]] | ||
---- | ---- | ||
[[Category:oracle]] | [[Category:oracle]] |
2023년 6월 27일 (화) 13:33 기준 최신판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 실행계획에서 조인 읽는 방법[편집]
- 안에서 바깥으로
- 위에서 아래로
1.1 예외적인 사항[편집]
- 해시조인 시 BUILD INPUT 처리시
SELECT /*+ leading(E) use_hash(D) swap_join_inputs(D) */ E.EMPNO, E.ENAME, E.SAL, D.DNAME
FROM DEPT D
INNER JOIN EMP E
ON D.DEPTNO = E.DEPTNO
AND E.SAL > 1500
AND E.JOB = 'SALESMAN'
WHERE D.DNAME = 'SALES'
;
Execution plan
-----------------------------------------------------------------
| Id | Operation | Name | Card | Bytes | Cost (%CPU)|
-----------------------------------------------------------------
| 0| SELECT STATEMENT | | 1 | 32 | 8 (0)|
|* 1| HASH JOIN | | 1 | 32 | 8 (0)|
|* 2| TABLE ACCESS FULL | DEPT | 1 | 13 | 4 (0)|
|* 3| TABLE ACCESS FULL | EMP | 2 | 50 | 4 (0)|
-----------------------------------------------------------------
Predicate Information (identified by operation id):
-----------------------------------------------------------------
1 - access("D"."DEPTNO"="E"."DEPTNO")
-----------------------------------------------------------------
- 해시조인 시 EARLIER FILTER 서브쿼리