DBMS Optimizer(옵티마이저)


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

 1-1. 정의

 - 사용자의 다양한 요구에 따라 SQL문의 문법적 오류를 확인하고 가장 빠른 데이터 엑세스 경로(Plan)을 생성하고 선택하여 최적의 경로를 찾아주는 역할을 하는 DBMS의 핵심 엔진

 - 옵티마이저에 영향을 미치는 요소 : SQL 형태, 연산자 형태, 힌트사용, 분산DB, 인덱스/클러스터링, 통계정보, 옵티마이저 모드, DBMS 버전


 1-2. 목표

 - 전체 처리속도 최적화

 - 최초 응답속도 최적화


2. DBMS Optimizer (옵티마이저)의 개념도 및 요소 설명, 종류

 2-1. DBMS Optimizer (옵티마이저)의 개념도

2-2. DBMS Optimizer (옵티마이저)의 요소 설명

 1) Parse : 구문, 보안, Object 등의 체크 및 Simple Transformation을 수행

 2) Query Rewrite : 서브질의와 부의 병합을 수행하고, OR Expansion 작업을 수행

 3) Query Optimization : 질의에 대한 엑세스 경로를 결정

 4) QEP Generation : 질의실행계획 (질의를 실행하는데 필요한 상세 정보를 생성)

 5) Query Execution : QEP에 따라 SQL 문장을 실행


 2-3. DBMS Optimizer (옵티마이저)의 종류

 1) RBO : 사전에 실행할 SQL문의 순서를 규칙으로 설정하여 그 규칙에 따라 SQL문의 실행 순서를 결정하는 옵티마이저

 2) CBO: 실행 처리 방법들에 대한 비용을 산정하여 그중에 가장 적은 비용이 들어가는 처리방법들을 선택하는 옵티마이저


3. DBMS Optimizer (옵티마이저)의 발전방향

 1) RBO의 한계 : 추출해야하는 쿼리나 데이터가 복잡해지면서 단순 정해진 규칙대로 수행에 한계가 발생되어 CBO를 많이 사용함

 2) Self Learning Optimizer : 과거에는 단순히 오프젝트 및 시스템 통계로 부터 산정한 비용만으로 실행계획을 수립했으나 앞으로는 예상치와 수행결과를 비교하여 오류를 스스로 수정하여 최적화를 도출하는 옵치마이저로 발전 예상


블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,