사용자 도구

사이트 도구


study:oracle:datadb:4week_2:chap2

3.3.2. 최적화 목표(Goal) 제어 힌트

  • 앞서 [3.1.2 옵티마이져의 형태]에서 살펴보았던 옵티마이져 목표(Goal)에 따른 옵티마이져 모드를 쿼리단위로 적용할 수 있다.
  • 본 힌트에 대한 권고
    1. 1차적으로 적절한 옵티마이져 모드를 적절히 정하는 것이 우선임
    2. 특정 쿼리에서 기본적으로 생성된 실행계획이 만족스럽지 못할 때 일단 옵티마이져 모드를 바꾸어서 그 결과를 살펴보는 정도의 목적으로 적용해 보는 것이 좋음

ALL_ROWS

  • 쿼리 전체 결과를 모두 수행하는 것에 대한 최적화(Best throughput)를 목표로 최저 비용의 실행계획을 수립하도록 유도한다.
  • (Minimum total resource consumption)
예) SELECT /*+ ALL_ROWS */ ....

CHOOSE

  • SQL에서 액세스하는 테이블에 대한 통계정보 유무에 따라 규칙기준이나 비용기준을 적용하여 최적화를 수행한다.
  • 만약 CHOOSE모드에서 테이블의 통계정보를 참조할수 있는 경우에는 ALL_ROWS 방식으로 처리된다
예) SELECT /*+ CHOOSE */ ....

FIRST_ROWS

  • 최적응답시간(Best response time)을 목표로 최저 비용의 실행계획을 수립하도록 유도한다.
  • (Minimum resource usage to return first or first n rows)

예) SELECT /*+ FIRST_ROWS */ …

    SELECT /*+ FIRST_ROWS(10) */.....

RULE

  • 규칙기준 옵티마이져를 이용한 최적화를 요구한다.
  • 즉, 조건구문에 사용된 컬럼들의 인덱스 형태나 연산자 형태 등 에 의한 우선순위 규칙에 따라 실행계획을 수립하도록 유도한다.
예) SELECT /*+ RULE */...
참조한문서
study/oracle/datadb/4week_2/chap2.txt · 마지막으로 수정됨: 2010/05/26 17:55 저자 zummaz