11. 집합 연산을 조인으로 변환
2011.06.07 19: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
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 35 |
1. 옵티마이저
| 휘휘 | 2011.04.17 | 6657 |
| 34 | 3. 옵티마이저의 한계 - P | 휘휘 | 2011.04.17 | 4346 |
| 33 | 2. 옵티마이저 행동에 영향을 미치는 요소 | balto | 2011.04.17 | 6619 |
| 32 | 3. 옵티마이저의 한계 | 휘휘 | 2011.04.19 | 7135 |
| 31 |
4. 통계정보 Ⅰ
| 토시리 | 2011.04.24 | 16773 |
| 30 | 6. 히스토그램 | 오예스 | 2011.04.25 | 18432 |
| 29 | 5. 카디널리티 | 오라클잭 | 2011.04.26 | 13622 |
| 28 |
7. 비용
| balto | 2011.05.01 | 5726 |
| 27 | 8. 통계정보 Ⅱ | AskZZang | 2011.05.04 | 6416 |
| 26 | 1. 쿼리 변환이란? | 운영자 | 2011.05.16 | 6702 |
| 25 | 3. 뷰 Merging | 오라클잭 | 2011.05.17 | 6515 |
| 24 | 2. 서브쿼리 Unnesting | 토시리 | 2011.05.17 | 2702 |
| 23 |
5. 조건절 이행
| balto | 2011.05.29 | 6021 |
| 22 | 4. 조건절 Pushing | 오예스 | 2011.05.31 | 21692 |
| 21 | 6. 조인 제거 | AskZZang | 2011.06.01 | 6010 |
| 20 | 7. OR-Expansion | AskZZang | 2011.06.01 | 9007 |
| 19 | 12. 기타 쿼리 변환 | 휘휘 | 2011.06.05 | 3805 |
| 18 | 10. 실체화 뷰 쿼리로 재작성 | 오라클잭 | 2011.06.07 | 10576 |
| » | 11. 집합 연산을 조인으로 변환 | 오라클잭 | 2011.06.07 | 5594 |
| 16 |
2. 소트를 발생시키는 오퍼레이션
| balto | 2011.06.11 | 5516 |