Tuning2008/12/04 15:55

DROP INDEX emp_deptno_idx ;

 

연결고리가 되는 각 deptno 컬럼에는 인덱스가 없다. 어떠한 실행 계획 생성 되는가? 또한 Join 의 순서는 ?

 

SELECT *

FROM emp e, dept d

WHERE e.deptno = d.deptno ;

 

각각의 결과를 확인

 

SELECT /*+ ORDERED */ *

FROM emp e, dept d

WHERE e.deptno = d.deptno ;

- FROM 절에 나열 된 순서대로 조인이 일어난다.
 

SELECT /*+ USE_NL(e d) */ *

FROM emp e, dept d

WHERE e.deptno = d.deptno ;

 

SELECT /*+ USE_MERGE(e d) */ *

FROM emp e, dept d

WHERE e.deptno = d.deptno ;

 

SELECT /*+ USE_HASH(e d) */ *

FROM emp e, dept d

WHERE e.deptno = d.deptno ;

 

SELECT /*+ LEADING(e) */ *

FROM emp e, dept d

WHERE e.deptno = d.deptno ;

- 드라이빙 테이블을 정의
 

EXEC DBMS_STATS.GATHER_SCHEMA_STATS('HR') ;

 

SELECT  *

FROM dept a

WHERE EXISTS ( SELECT /*+ HASH_SJ */ deptno

                           FROM emp

                           WHERE deptno = a.deptno ) ;

- 내부적으로 해시 조인 방식으로

SELECT  *

FROM dept a

WHERE EXISTS ( SELECT /*+ MERGE_SJ */ deptno

                           FROM emp

                           WHERE deptno = a.deptno ) ;

SELECT  *

FROM dept a

WHERE EXISTS ( SELECT /*+ NL_SJ */ deptno

                           FROM emp

                           WHERE deptno = a.deptno ) ;


크리에이티브 커먼즈 라이선스
Creative Commons License

'Tuning' 카테고리의 다른 글

#sid  (0) 2008/12/12
/* Histogram 활용 */ 실습  (0) 2008/12/04
/* Join 순서 및 작업에 대한 힌트 */  (0) 2008/12/04
/* Query 변환에 대한 힌트 */  (1) 2008/12/04
/* 액세스 경로에 대한 힌트 */  (2) 2008/12/04
뷰 확인  (0) 2008/11/26
Posted by 청짱
TAG

TRACKBACK http://soseem.net/trackback/193 관련글 쓰기

댓글을 달아 주세요