- 옵티마이저란?
- 가장 효율적인 방법으로 SQL을 처리할 경로를 생성해주는 DBMS의 핵심 엔진
- 컴퓨터의 CPU처럼 DBMS는 옵티마이저가 있다.
- 개발자가 SQL을 실행해도 바로 실행하는 것이 아닌 옵티마이저를 거쳐 계획을 여러 가지 세운 후 최적의 계획을 실행합니다.
- 옵티마이저의 종류
- 규칙 기반 옵티마이저
- 일정한 규칙을 가지고 실행 계획을 생성
- 우선순위가 높은 규칙이 적은 계획으로 작업을 수행
- 비용 기반 옵티마이저
- 대부분의 DBMS가 비용 기반 옵티마이저로 수행된다.
- 규칙 기반 옵티마이저의 단점을 보완
- SQL문을 처리할때 필요한 비용이 적은 계획을 선태
- 비용 기반 옵티마이저의 구성 요소
- 질의 변환기
- 대안 계획 생성기
- 비용 예측기
- 규칙 기반 옵티마이저
- 옵티마이저 동작 방식
- Parser : SQL 문장을 분석하여 문법 검사와 구성요소를 파악하고 이를 파싱 해서 파싱 트리 구성
- Query Transformer : 파싱된 SQL을 보고 같은 결과를 도출하되, 실행 계획을 가지는 방법이 없는지 계획을 도출
- Estimator : 통계정보를 딕셔너리로부터 수집하여 SQL을 실행할 때 드는 비용 계산
- Plan Generator : 측정기를 통해 계산된 값들로 실행계획을 도출합니다.
- Row-Source Generator : 옵티마이저가 생성한 계획을 SQL 엔진이 실행할 수 있도록 코드나 프로시저 형태로 변환
- SQL Engine : SQL 실행
'CS자료 > 데이터베이스' 카테고리의 다른 글
[DB] 정규화 (0) | 2022.03.19 |
---|---|
[DB] 인덱스를 사용하는 이유 (0) | 2022.03.19 |
[DB] 샤딩 (0) | 2022.03.19 |
[DB] Replication (0) | 2022.03.19 |
[DB] ORM (0) | 2022.03.19 |