데이터베이스

옵티마이저

Younghun 2023. 11. 5. 14:18

1. 옵티마이저란

  • 최적의 쿼리 실행 계획을 세워주는 엔진
  • 쿼리 실행의 4단계 중 2단계
    1. Parsing: SQL 구문을 분석하고 문법 오류를 검사
    2. Optimization: 최적의 SQL 실행 계획 도출
    3. Generation: 실행 계획을 실행 가능한 코드로 변경
    4. Execution: 실행

2. 규칙 기반 옵티마이저 (RBO)

  • 미리 정해둔 규칙에 따라 실행 계획을 최적화
  • 실행 속도가 빠른 순으로 규칙을 세우고 우선순위를 설정
  • 과거, 통계가 부족하고 CPU 성능이 낮아 비용 연산이 부담스러울 때 사용하던 방식

3. 비용 기반 옵티마이저 (CBO)

  • 현재, 대부분의 RDBMS가 사용
  • 실행 계획의 비용을 계산해 최소값을 고르는 방식
  • 비용은 객체 및 시스템 통계 정보를 이용한 예상치로 계산 (테이블, 컬럼, 인덱스, CPU 및 IO 성능, ...)
  • 정밀한 비용 계산을 위해 통계 정보가 중요하다.