사용자 도구

사이트 도구


study:oracle:datadb:4week_2:chap8

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
study:oracle:datadb:4week_2:chap8 [2010/05/27 14:06]
zummaz
study:oracle:datadb:4week_2:chap8 [2010/05/27 14:12]
zummaz
줄 93: 줄 93:
   *예를 들어 어떤 쿼리가 선택한 결합 인덱스에서 중간에 있는 컬럼에 조건이 부여되지 않았을때 '='조건을 공급하기 위해서 서브쿼리를 추가 했는데 우리의 생각과는 달리 서브쿼리가 확인자의 역활을 하도록 실행계획이 수립된다면 이 힌트를 이용하여 제공자 역활을 하도록 할수 있다.   *예를 들어 어떤 쿼리가 선택한 결합 인덱스에서 중간에 있는 컬럼에 조건이 부여되지 않았을때 '='조건을 공급하기 위해서 서브쿼리를 추가 했는데 우리의 생각과는 달리 서브쿼리가 확인자의 역활을 하도록 실행계획이 수립된다면 이 힌트를 이용하여 제공자 역활을 하도록 할수 있다.
  
-  예) SELECT /*+ PUSH_SUBQ(@qb) */..........                                                                        [INDEX: ITEM+SALTYPE+SALDATE]+  예) SELECT /*+ PUSH_SUBQ(@qb) */..........                 [INDEX: ITEM+SALTYPE+SALDATE]
        FROM sales        FROM sales
        WHERE item = :b1        WHERE item = :b1
줄 110: 줄 110:
 ===QB_NAME=== ===QB_NAME===
   *쿼리 블록에 이름을 부여하여 해당 쿼리 블록 외부의 다른 힌트에서 지정한 쿼리블록을 참조할 수 있도록 하는 힌트이다.   *쿼리 블록에 이름을 부여하여 해당 쿼리 블록 외부의 다른 힌트에서 지정한 쿼리블록을 참조할 수 있도록 하는 힌트이다.
 +  *Query Block에 명시적으로 이름을 부여하는 역할을 한다. 주로 Inline View나 Subquery 등에 이름을 붙여서 실행 계획의 가독성을 높이는 용도로 사용된다. 
 +  * 참고 : http://ukja.tistory.com/93 
  
   예) SELECT /*+ UNNEST(@qb) */........   예) SELECT /*+ UNNEST(@qb) */........
줄 118: 줄 120:
  
 \\  \\ 
-*쿼리 블록에 대한 명칭은 전체 쿼리 내에 유일하게 부여되어야 하며, 동일한 쿼리블록은 다른 이름으로 여러 힌트에서 반복 사용될 수 없다. 이 힌트를 사용하면서 명명하지 않는 쿼리블록은 옵티마이져가 쿼리 블록명을 자동 생성하며, 사용된 쿼리블록명은 PLAN_TABLE에서 확인할수 있다.+  *쿼리 블록에 대한 명칭은 전체 쿼리 내에 유일하게 부여되어야 하며, 동일한 쿼리블록은 다른 이름으로 여러 힌트에서 반복 사용될 수 없다. 이 힌트를 사용하면서 명명하지 않는 쿼리블록은 옵티마이져가 쿼리 블록명을 자동 생성하며, 사용된 쿼리블록명은 PLAN_TABLE에서 확인할수 있다.
  
 ===REWRITE_OR_ERROR=== ===REWRITE_OR_ERROR===
study/oracle/datadb/4week_2/chap8.txt · 마지막으로 수정됨: 2010/05/27 14:46 저자 zummaz