정보관리기술/데이터베이스

옵티마이저(Optimizer)

아이티신비 2024. 2. 11. 11:00

문제 4) 데이터베이스 옵티마이저(Optimizer)에 대한 아래의 사항을 설명하시오.

가. 옵티마이저의 개념

나. RBO(Rule Based Optimizer)와 CBO(Cost Based Optimizer) 비교

다. 옵티마이저의 적용 시 고려사항

 

답)

 

1. 옵티마이저(Optimizer)의 개념

가. 옵티마이저(Optimizer)의 정의 및 기능

 
구분
설명
정의
  • 사용자가 질의한 SQL문을 처리 가능한 실행계획을 탐색하고 각 실행계획에 대한 비용을 추정하여 최적의 실행계획을 수립하는 DBMS의 핵심 엔진
핵심 기능
실행 계획 탐색
  • 주어진 SQL 질의를 처리할 수 있는 실행 계획들을 나열(P1, .., Pn)
비용 산정
  • 각 실행계획의 예상비용을 계산 많은 실행계획들 중에서 최종적으로 가장 비용이 적게 드는 실행계획 Pi를 선택해서 SQL을 실행하고 결과를 사용자에게 제공.

 

나. 옵티마이저(Optimizer)의 처리 절차

질의 처리 단계
핵심 기능
설명
Query Rewrite
질의 변환기
  • 서브 질의와 뷰의 병합을 수행하고, OR Expansion 작업을수행
  • 서브질의와 뷰 병합: 옵티마이저가 더욱 효과적인 QEP를 찾기 위하여 더 효과적인 플랜이 있는지 그 가능성을 확인하는과정
Query Optimization
비용 산정기
  • 질의에 대한 엑세스 경로를 결정
QEP Generation
실행 계획 생성기
  • 질의실행계획(QEP/Query Execution Plan)
  • : 질의를 실행하는데 필요한 상세한 정보를 생성
  • 옵티마이저는 룰 기반의 RBO와 비용기반의 CBO가 존재

 

2. RBO(Rule Based Optimizer)와 CBO(Cost Based Optimizer) 비교

가. RBO(Rule Based Optimizer)와 CBO(Cost Based Optimizer) 개념 비교

 
구분
RBO
CBO
정의
  • 인덱스구조나 비교연산자에 따른 순위부여를기준으로 최적의 경로를 설정하는 옵티마이저
  • 데이터 건수, 블록 수, 데이터 분포도 등 데이터 통계 정보를 기반으로 하여 처리에 대한 최적의 비용이 들어가는 실행 계획을 수립하는 옵티마이저
특징
  • 사전에 정의된 규칙에 따라 실행
  • 사후에 RBO 규칙을 변경하기 어려움
  • 최적화된 결정을 위해 정기적 통계정보 갱신필요
  • 실행계획을 미리 예측하기 힘듬

 

나. RBO(Rule Based Optimizer)와 CBO(Cost Based Optimizer) 상세 비교

 
구분
RBO
CBO
경로선택
  • 인덱스 구조나 비교 연산자에 따른 순서 여부를 기준으로 최적 경로 설정
  • 처리 방법에 대한 비용을 산정한 후 최소 비용이 소요되는 방법 선택
최적화 기준
  • 개발자의 SQL 숙련도
  • 옵티마이저의 예측 성능
동작 방식
  • 15개 RULE 기반으로 처리
  • 시스템 통계정보에 따른 비용 산정 후 처리
장점
  • 예측 가능하여 사용자가 원하는 처리 경로 유도가 용이함
  • 현실을 감안한 판단, 통계정보의 관리를 통한 최적화 제어
단점
  • 통계정보라는 현실 요소 무시하여 판단의오차가 크게 날 수 있음
  • 실행 계획을 미리 예측, 제어가 어려움

 

3. 옵티마이저의 적용 시 고려사항

 
구분
설명
통계정보의 정확성
  • 적절한 통계 정보의 생성 및 주기적인 갱신을 통한 통계정보 정확성 보정
효율적 인덱스 구성
  • 데이터 카디널리티등을 관리하여 가장 효율적인 인덱스 생성
주기적 통계정보 갱신
  • 주기적인 통계정보 갱신을 통한 최신 통계정보 유지
DBMS 튜닝
  • 인덱스 조정 및 Table / Index 재 구성 수행


 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥

 

'정보관리기술 > 데이터베이스' 카테고리의 다른 글

데이터 품질관리 지침  (23) 2024.02.12
DA와 DBA  (27) 2024.02.12
샤딩(Sharding)  (23) 2024.02.11
데이터 품질관리  (20) 2024.02.11
데이터베이스 튜닝  (24) 2024.02.10