철학과 학생의 개발자 도전기
Younghun
« 2025/06 »
일 |
월 |
화 |
수 |
목 |
금 |
토 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|
|
|
관리 메뉴
철학과 학생의 개발자 도전기
옵티마이저 본문
데이터베이스
옵티마이저
Younghun
2023. 11. 5. 14:18
1. 옵티마이저란
- 최적의 쿼리 실행 계획을 세워주는 엔진
- 쿼리 실행의 4단계 중 2단계
- Parsing: SQL 구문을 분석하고 문법 오류를 검사
- Optimization: 최적의 SQL 실행 계획 도출
- Generation: 실행 계획을 실행 가능한 코드로 변경
- Execution: 실행
2. 규칙 기반 옵티마이저 (RBO)
- 미리 정해둔 규칙에 따라 실행 계획을 최적화
- 실행 속도가 빠른 순으로 규칙을 세우고 우선순위를 설정
- 과거, 통계가 부족하고 CPU 성능이 낮아 비용 연산이 부담스러울 때 사용하던 방식
3. 비용 기반 옵티마이저 (CBO)
- 현재, 대부분의 RDBMS가 사용
- 실행 계획의 비용을 계산해 최소값을 고르는 방식
- 비용은 객체 및 시스템 통계 정보를 이용한 예상치로 계산 (테이블, 컬럼, 인덱스, CPU 및 IO 성능, ...)
- 정밀한 비용 계산을 위해 통계 정보가 중요하다.