반응형
옵티마이저 종류
옵티마이저의 실행 방법

옵티마이저 엔진
옵티마이저 설명
Query Transformer - SQL문을 효율적으로 실행하기 위해서 옵티마이저가 변환한다.
- SQL이 변환되어도 그 결과는 동일하다.
Estimator - 통계정보를 사용해서 SQL 실행비용을 계산한다.
- 총비용은 최적의 실행 계획을 수립하기 위해서이다.
Plan Generator SQL을 실행할 실행 계획을 세운다.
옵티마이저 엔진
  • 규칙 기반 옵티마이저(Rule base Optimizer)는 실행 계획을 수립할 때 15개의 우선순위를 기준으로 실행 계획을 수립한다.
  • 최신 Oracle 버전은 규칙 기반 옵티마이저보다 비용 기반 옵티마이저를 기본적으로 사용한다.

▶ 옵티마이저 엔진

우선순위 설명
1 ROWID를 사용한 단일행인 경우
2 클러스터 조인에 의한 단일 행인 경우
3 유일하거나 기본키(Primary key)를 가진 해시 클러스터 키에 의한 단일 행인 경우
4 유일하거나 기본키에 의한 단일 행인 경우
5 클러스터 조인인 경우
6 해시 클러스터 조인인 경우
7 인덱스 클러스터 키인 경우
8 복합 칼럼 인덱스의 경우
9 단일 칼럼 인덱스인 경우
10 인덱스가 구성된 칼럼에서 제한된 범위를 검색하는 경우
11 인덱스가 구성된 칼럼에서 무제한 범위를 검색하는 경우
12 정렬-병합(Sort Merge) 조인인 경우
13 인덱스가 구성된 칼럼에서 MAX 혹은 MIN을 구하는 경우
14 인덱스가 구성된 칼럼에서 ORDER BY를 실행하는 경우
15 전체 테이블을 스캔(FULL TABLE SCAN)하는 경우
비용 기반 옵티마이저
  • 비용 기반 옵티마이저(Cost base Optimizer)는 오브젝트 통계 및 시스템 통계를 사용해서 총비용을 계산한다.
  • 총비용이라는 것은 SQL문을 실행하기 위해서 예상되는 소요시간 혹은 자원의 사용량을 의미한다.
  • 총비용이 적은 쪽으로 실행 계획을 수립한다. 단, 비용 기반 옵티마이저에서 통계정보가 부적절한 경우 성능 저하가 발생할 수 있다.
반응형

+ Recent posts