행위

"실행계획 조인 읽는 순서"의 두 판 사이의 차이

DB CAFE

잔글 (Dbcafe님이 Join 순서 문서를 실행계획 조인 읽는 순서 문서로 이동했습니다)
(실행계획에서 조인 읽는 방법)
 
(같은 사용자의 중간 판 2개는 보이지 않습니다)
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 추천메뉴 바로가기


1 실행계획에서 조인 읽는 방법[편집]

  1. 안에서 바깥으로
  2. 위에서 아래로

조인순서.jpg

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")
-----------------------------------------------------------------
  1. 해시조인 시 EARLIER FILTER 서브쿼리
    1. EARLIER Filter 서브쿼리