====3.3.2. 최적화 목표(Goal) 제어 힌트==== *앞서 [3.1.2 옵티마이져의 형태]에서 살펴보았던 옵티마이져 목표(Goal)에 따른 __**옵티마이져 모드**__를 쿼리단위로 적용할 수 있다. *본 힌트에 대한 권고 -1차적으로 적절한 옵티마이져 모드를 적절히 정하는 것이 우선임 -특정 쿼리에서 기본적으로 생성된 실행계획이 만족스럽지 못할 때 일단 __**옵티마이져 모드를 바꾸어서 그 결과를 살펴보는 정도**__의 목적으로 적용해 보는 것이 좋음 ===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 */... ==참조한문서== "오라클클럽" http://wiki.oracleclub.com/pages/viewpage.action?pageId=1507460&