반응형
옵티마이저 종류
옵티마이저의 실행 방법
옵티마이저 엔진
옵티마이저 | 설명 |
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문을 실행하기 위해서 예상되는 소요시간 혹은 자원의 사용량을 의미한다.
- 총비용이 적은 쪽으로 실행 계획을 수립한다. 단, 비용 기반 옵티마이저에서 통계정보가 부적절한 경우 성능 저하가 발생할 수 있다.
반응형
'Certificate > SQLD' 카테고리의 다른 글
[SQLD]옵티마이저 조인(Optimizer Join) (0) | 2021.11.25 |
---|---|
[SQLD]인덱스(Index) (0) | 2021.11.17 |
[SQLD]옵티마이저(Optimizer)와 실행 계획 (0) | 2021.11.15 |
[SQLD]SQL(Structured Query Language) 종류 (0) | 2021.11.13 |
[SQLD]관계형 데이터베이스(Relation Database) (0) | 2021.11.12 |