Skip to main content

데이터베이스 옵티마이저

· 3 min read

옵티마이저 개념

  • DBMS 내에서 SQL 쿼리 실행 계획을 분석하고 최적의 계획을 수립하는 핵심 엔진
  • 최적화된 쿼리 실행으로 시스템 자원의 효율적 사용과 응답시간 단축

옵티마이저 구성도, 구성요소, RBO, CBO

옵티마이저 구성도

옵티마이저 구성요소

구분내용비고
1. SQL Parser쿼리파싱, 구문분석, 구문트리생성문법 검사
2. Query Transformer쿼리 변환 하의 최적화 가능성 제고쿼리 재작성
3. Plan Generator여러 가능한 실행 계획 생성조인, 인덱스 경로
4. Cost Estimator각 실행 계획 예상 비용 계산통계 저장, 참조
5. Plan Selector가장 낮은 비용 실행 계획 선택, 실행RBO, CBO 방식

RBO, CBO 비교

구분RBOCBO
최적화 기준고정된 규칙 사용실행 비용 추정
결정자인덱스 구조, 연산자, 조건 등레코드 블록 수, 평균 행 길이, 인덱스 높이, 컬럼 수 분포, 디스크 I/O
특징실행 계획 예측 용이저장된 통계 정보 활용
장점규칙 단순, 빠른 최적화더 효율적인 실행 계획 수립
단점복잡한 쿼리 최적화 어려움, 규칙 관리 필요통계 정보 부정확할시 오류 발생
  • 최신 DBMS는 CBO 방식 채택

옵티마이저 적용방안

구분방안비고
DA모델링시 인덱스 전략 설계, 파티셔닝 고려효율적 구조 설계
DBA통계정보 수립 및 갱신, 실행계획 최적화모너티링, 대응
User쵲거화된 쿼리 작성, 인덱스 힌트 사용개발단계 쿼리 최적화, EXPLAIN PLAN

옵티마이저 고려사항

  • 개발자가 쿼리에 EXPLAIN PLAN을 사용하여 분석 후 최적화된 쿼리 구현 필요