사용자 도구

사이트 도구


study:oracle:datadb:4week_2:chap4

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
study:oracle:datadb:4week_2:chap4 [2010/05/27 14:19]
zummaz
study:oracle:datadb:4week_2:chap4 [2010/05/27 21:46] (현재)
zummaz
줄 1: 줄 1:
-====3.3.4. 조인 방법 선택용 힌트====+======3.3.4. 조인 방법 선택용 힌트======
   *앞서서 공부한 다양한 조인방식을 힌트(HINT)를 사용해 옵티마이져에게 권고(충고)할 수 있다.   *앞서서 공부한 다양한 조인방식을 힌트(HINT)를 사용해 옵티마이져에게 권고(충고)할 수 있다.
   *조인방법은 다양한 주어진 상황에 영향을 받는다. 다음과 같은 요소를 잘 검토해 HINT를 사용하도록 하자.   *조인방법은 다양한 주어진 상황에 영향을 받는다. 다음과 같은 요소를 잘 검토해 HINT를 사용하도록 하자.
줄 9: 줄 9:
     -   쿼리가 수행되는 시간대나 시스템의 유형(OLTP, OLAP등)     -   쿼리가 수행되는 시간대나 시스템의 유형(OLTP, OLAP등)
  
-===USE_NL===+=====USE_NL=====
   *Nested Loops방식을 사용하여 조인을 수행하도록 유도하는 힌트이다   *Nested Loops방식을 사용하여 조인을 수행하도록 유도하는 힌트이다
   *이 힌트는 대상 집합 간의 조인 방식을 지칭할 뿐이며, 조인 순서에는 영향을 미치지 않는다.    *이 힌트는 대상 집합 간의 조인 방식을 지칭할 뿐이며, 조인 순서에는 영향을 미치지 않는다. 
- +  * 예) \\ <code>SELECT /*+ USE_NL(a b c) */...
-  예) SELECT /*+ USE_NL(a b c) */...+
        FROM TAB1 a, TAB2 b, TAB3 c        FROM TAB1 a, TAB2 b, TAB3 c
-       WHERE ...+       WHERE ...</code>
                
  
-===NO_USE_NL===+=====NO_USE_NL=====
   *USE_NL 힌트가 옵티마이져에게 지정한 테이블에 대한 조인 방식을 제시하는 것인데 반해, NO_USE_NL 힌트는 옵티마이져에게 지정한 테이블에 대해 Nested Loop 조인방식을 제외한 다른 방식의 조인-해쉬조인 이나 Sort Merge 조인등 -을 사용할을 제시한다.    *USE_NL 힌트가 옵티마이져에게 지정한 테이블에 대한 조인 방식을 제시하는 것인데 반해, NO_USE_NL 힌트는 옵티마이져에게 지정한 테이블에 대해 Nested Loop 조인방식을 제외한 다른 방식의 조인-해쉬조인 이나 Sort Merge 조인등 -을 사용할을 제시한다. 
   *옵티마이져의 실행계획 수립에 대해 USE_NL이 적극적인 개입이라면 NO_USE_NL은 소극적인 개입이라고 할 수 있다.    *옵티마이져의 실행계획 수립에 대해 USE_NL이 적극적인 개입이라면 NO_USE_NL은 소극적인 개입이라고 할 수 있다. 
줄 29: 줄 28:
  
  
-===USE_NL_WITH_INDEX===+=====USE_NL_WITH_INDEX=====
   *Nested Loops조인에서 선행처리되는 **외측루프의 처리주관 인덱스를 지정**할 때 사용하는 힌트이다.    *Nested Loops조인에서 선행처리되는 **외측루프의 처리주관 인덱스를 지정**할 때 사용하는 힌트이다. 
   *과거에는 **USE_NL 과 INDEX 힌트를 같이 사용하였지만 이 힌트는 이들을 하나로 통합**한 것이다.   *과거에는 **USE_NL 과 INDEX 힌트를 같이 사용하였지만 이 힌트는 이들을 하나로 통합**한 것이다.
줄 46: 줄 45:
  
  
-===USE_HASH===+=====USE_HASH=====
   *해쉬조인 방식으로 조인이 수행되도록 우도하는 힌트이다.    *해쉬조인 방식으로 조인이 수행되도록 우도하는 힌트이다. 
   *해쉬조인은 어느 한쪽 테이블이작아서 인-메모리 해쉬조인으로 수행될 수 있다면 매우 양호한 속도를 갖는다.    *해쉬조인은 어느 한쪽 테이블이작아서 인-메모리 해쉬조인으로 수행될 수 있다면 매우 양호한 속도를 갖는다. 
줄 64: 줄 63:
  
  
- +=====USE_MERGE=====
-===USE_MERGE===+
   *Sort Merge방식으로 조인을 수행하도록 유도하느 힌트이다.    *Sort Merge방식으로 조인을 수행하도록 유도하느 힌트이다. 
   *필요하다면 'ordered'힌트와 같이 사용할 것을 추천한다.   *필요하다면 'ordered'힌트와 같이 사용할 것을 추천한다.
줄 78: 줄 76:
  
  
-==참조한문서==+====참조한문서====
 "오라클클럽" http://wiki.oracleclub.com/pages/viewpage.action?pageId=1966259&  "오라클클럽" http://wiki.oracleclub.com/pages/viewpage.action?pageId=1966259& 
  
  
study/oracle/datadb/4week_2/chap4.1274937552.txt.gz · 마지막으로 수정됨: 2010/05/27 14:19 저자 zummaz