반응형

1. 옵티마이저란?

사용자가 실행한 SQL을 해석하고, 데이터 추출을 위한 실행계획을 수립하는 프로세스를 의미한다. 이 실행계획을 수립하는 프로세스가 곧 SQL 실행 속도를 결정한다고 할 수 있다.

 

2. 옵티마이저의 종류

1) 오라클

i) RBO

ii) CBO

- v10g부터 기본적인 설정으로 적용되고 있음

 

2) 오라클 이외

i) CBO를 가지고 있음

 

3. RBO(Rule Based Optimizer)

1) 기본적으로 15개의 순위가 매겨진 규칙이 있음

- 이를 기초하여 실행계획을 수립한다.

 

2) SQL에 대한 실행계획이 하나 이상일 경우에는 순위가 높은 규칙을 사용한다.

 

3) 수립될 실행계획이 예측 가능하기 때문에 개발자가 원하는 처리 경로로 유도하기가 쉽다.

 

3-1. 15개의 순위

1) ROWID에 의한 1 ROW

2) 클러스터 조인에 의한 1 row

3) 유니크나 주 키를 사용한 해시 클러스터 키에 의한 1row

4) 유니크나 주키에 의한 1row

5) 클러스터 조인

6) 해시 클러스터 키

7) 클러스터 키

8) 결합 컬럼 인덱스

9) 단일 컬럼 인덱스

10) 인덱스에 의한 유한 영역 검색(equal 등)

11) 인덱스에 의한 무한 영역 검색(대소비교)

12) Sort Merge 조인

13) 인덱스로 구성된 칼럼의 최대 또는 최소

14) 인덱스로 구성된 칼럼으로 order by

15) 인덱스 없이 풀스캔

 

4. CBO(Cost Based Optimizer)

1) 대상 row들을 처리하는데 필요한 자원 사용을 최소하하여 데이터를 빨리 처리한다.

2) CBO에 영향을 미치는 요인은 힌트, 연산자, 인덱스, 클러스터, 테이블 등이 있다.

 

4-1. CBO(Cost Based Optimizer)의 통계 정보

1) 통계정보

- CBO의 성능을 최적의 상태로 만들기 위해 테이블, 인덱스, 클러스터 등을 대상으로 통계 정보 생성함

- 정기적으로 분석 작업을 하는 것이 중요하다.

- 가장 효율적인 실행계왹을 수립하기 위해 최소비용을 계산할 때 중요하게 사용됨.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기