728x90
- 옵티마이저란?
- 옵티마이저는 SQL을 가장 효율적으로 실행 할 수 있는 방식을 자동으로 선택하는 DBMS 내부엔진
- SQL을 어떻게 실행해야 가장 적은 비용으로 가장 빠르게 결과를 얻을 수 있는지 판단하는 두뇌역할
- SQL 자체는 절차를 말하지 않고, 어떻게 실행하는가는 옵티마이저의 몫
- 옵티마이저의 역할
1. 인덱스 사용여부
- 인덱스를 사용할것인지?
- 여러 인덱스 중 어느 것을 선택할 것인지?
- 인덱스 스캔과 풀스캔 어느것이 빠른지?
2. 어떤 조인방식을 사용할지
- Nested Loop Join
- Hash Join
- Sort Merge Join
3. 조인순서를 어떻게 할지
4. 파티션 프루닝 가능판단
5. 별렬 실행 사용여부
- 옵티마이저 종류
- 현재 모든 DB는 CBO(Cost Based Optimizer) 사용
* 비용기반 옵티마이저(CBO)
- 테이블과 인덱스의 통계정보를 분석
- 예상 비용을 계산
- 가장 낮은 Cost의 실행계획 선택
728x90
'DB > sql' 카테고리의 다른 글
| [Oracle] 통계정보(Statistics) (0) | 2025.12.25 |
|---|---|
| [Oracle] 파티션(Partition) (0) | 2025.12.23 |
| 이기적SQLD(데이터 모델링)1-1 (0) | 2023.10.24 |
| 오라클 SQL(PL/SQL 제어문) (0) | 2023.10.23 |
| 오라클 SQL(PL/SQL1) (0) | 2023.10.20 |