데이터베이스
옵티마이저
Younghun
2023. 11. 5. 14:18
1. 옵티마이저란
- 최적의 쿼리 실행 계획을 세워주는 엔진
- 쿼리 실행의 4단계 중 2단계
- Parsing: SQL 구문을 분석하고 문법 오류를 검사
- Optimization: 최적의 SQL 실행 계획 도출
- Generation: 실행 계획을 실행 가능한 코드로 변경
- Execution: 실행
2. 규칙 기반 옵티마이저 (RBO)
- 미리 정해둔 규칙에 따라 실행 계획을 최적화
- 실행 속도가 빠른 순으로 규칙을 세우고 우선순위를 설정
- 과거, 통계가 부족하고 CPU 성능이 낮아 비용 연산이 부담스러울 때 사용하던 방식
3. 비용 기반 옵티마이저 (CBO)
- 현재, 대부분의 RDBMS가 사용
- 실행 계획의 비용을 계산해 최소값을 고르는 방식
- 비용은 객체 및 시스템 통계 정보를 이용한 예상치로 계산 (테이블, 컬럼, 인덱스, CPU 및 IO 성능, ...)
- 정밀한 비용 계산을 위해 통계 정보가 중요하다.