11. 집합 연산을 조인으로 변환
2011.06.08 04:16
-Intersect 나 Minus 같은 집합 연산을 조인 형태로 변환하는 것을 말함
_________________________________________________________________________________________________________________
TEST
-deptno=10에 속한 사원들의 job,mgr을 제외시키고 나머지 job,mgr 집합만을 찾는 쿼리
SQL> set autotrace traceonly exp; Execution Plan ----------------------------------------------------------------- Predicate Information (identified by operation id): 5 - filter("DEPTNO"=10) |
*각각 sort unique 연산을 수행한 후에 Minus연산을 수행
-_convert_set_to_join 파라미터를 true로 설정
SQL> alter session set "_convert_set_to_join" = true; 세션이 변경되었습니다. SQL> select job, mgr from emp Execution Plan ----------------------------------------------------------------- Predicate Information (identified by operation id): 2 - access(SYS_OP_MAP_NONNULL("JOB")=SYS_OP_MAP_NONNULL("JOB") AND |
*해시 anti 조인을 수행하고 나서 중복 값을 제거하기 위한 hash unique 연산을 수행
-다음과 같은 쿼리 변환이 일어남
SQL> select distinct job, mgr from emp e Execution Plan ----------------------------------------------------------------- Predicate Information (identified by operation id): 2 - access(SYS_OP_MAP_NONNULL("JOB")=SYS_OP_MAP_NONNULL("E"."JOB") |
*sys_op_map_nonnull
null 값끼리 비교(null=null)하면 false이지만 가끔 true가 되도록 처리해야 하는 경우가 있고 그럴 때 위 함수를 사용
위에서는 job과 mgr이 null 허용 컬럼이기 때문에 위와 같은 처리가 일어난다
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
55 | Front Page | 운영자 | 2011.02.16 | 114630 |
54 | 1. 테이블 파티셔닝 | 오라클잭 | 2011.06.21 | 28274 |
53 | 5. 병렬 처리에 관한 기타 상식 [1] | balto | 2011.06.26 | 28162 |
52 | 1. Nested Loops 조인 | 오라클잭 | 2011.03.23 | 23031 |
51 | 6. 스칼라 서브쿼리를 이용한 조인 | balto | 2011.03.27 | 18959 |
50 | 2. 인덱스 기본 원리 | balto | 2011.02.18 | 18848 |
49 | 5. Outer 조인 | 휘휘 | 2011.03.28 | 17670 |
48 | 4. 조건절 Pushing | 오예스 | 2011.05.31 | 17496 |
47 | 6. 히스토그램 | 오예스 | 2011.04.25 | 17418 |
46 | 4. 통계정보 Ⅰ | 토시리 | 2011.04.25 | 16017 |
45 | 1. 인덱스 구조 | 운영자 | 2011.03.30 | 15954 |
44 | 4. PQ_DISTRIBUTE 힌트 | 휘휘 | 2011.06.27 | 15620 |
43 | 6. IOT, 클러스터 테이블 활용 | 오예스 | 2011.02.26 | 15604 |
42 | 5. 카디널리티 | 오라클잭 | 2011.04.27 | 12922 |
41 | 8. 고급 조인 테크닉-2 | 오라클잭 | 2011.04.05 | 12564 |
40 | 2. 파티션 Pruning | 휘휘 | 2011.06.19 | 11868 |
39 | 2. 병렬 Order By와 Group By | 휘휘 | 2011.06.30 | 10127 |
38 | 7. 조인을 내포한 DML 튜닝 | 오예스 | 2011.04.04 | 9955 |
37 | 10. 실체화 뷰 쿼리로 재작성 | 오라클잭 | 2011.06.08 | 9953 |
36 | 5. 테이블 Random 액세스 최소화 튜닝 | 휘휘 | 2011.02.26 | 9507 |