데이터베이스

질의 최적화 기법_옵티마이저(Optimizer), CBO, RBO

스윙스윙 2021. 9. 17. 23:17

▣ 질의 최적화 기법_옵티마이저(Optimizer)

- 질의 최적화(Query Optimization)는 주어진 질의 처리 방식 중 가장 효율적인 실행계획(execution plan)을 

  선택하는 과정
- 실행계획 수립은 옵티마이저의 고유 기능으로 개발자가 직접 수정/편집할 수 없음
- 개발자는 SQL/INDEX 튜닝이나 HINT 사용을 통해 개선된 실행 계획을 옵티마이저에게 권고할 수 있음

 

구 분 CBO(Cost Based Optimizer) RBO(Rule Based Optimizer)
특징 - 실행계획을 미리 예측하기 힘들고, 실행계획을 특정한 처
리경로로 유도하는 등의 제어가 어려움
최적화된 결정을 위해 정기적으로 통계정보의 갱신 필요
- 통계정보를 사용하지 않고 SQL문 실행시 사전에 정의된
규칙에 따라 실행
- 사후에 RBO 규칙을 변경하기가 어려움
경로 선택 - 처리 방법에 대한 비용을 산정한 후 최소 비용이 소요되
는 방법 선택
- 인덱스 구조나 비교 연산자에 따른 순위여부를 기준으
로 최적 경로 설정
동작 방식 - 시스템 통계정보(CPU, 디스크 엑세스타임)를 이용해서
처리시간으로 환산한 방식을 사용 SQL문장에서 대한 여러
가지 경우의 수별로 처리시간에 비례한 비용을 산출해내고
이들 비용에서 가장 작은 비용을 갖는 플랜을 결정
- ROWID를 이용한 직접 접근, INDEX 를 이용한 Random
Access, Full Table Scan 을 이용하는 순차 Scan으로 구분
- 각 경로의 분류는 하나이상의 경로가 유용할 때 한 경로
를 선택하기 위한 규칙-기반 접근 방식에 의해 사용
장점 - 최적화를 깊이 이해하고 있지 않더라도 최소 성능 보장 - 판단이 매우 규칙적이고 분명하여 수립될 실행계획이
예측 가능하기 때문에 사용자가 원하는 처리 경로로 유도
하기에 용이
단점 - 실행 계획을 미리 예측, 제어가 어려움 - 통계 정보를 반영하지 않으므로 오차 발생 가능

 

 


2018년 73번

정답 : 2번

CBO 옵티마이저는 통계정보를 기반으로 실행계획을 수립한다

 


2012년 62번

정답 : 1번, 3번

질의최적기(Optimizer)의해 수립되는 실행계획은 사용자가 편집할 수 있는 파일이 아니라 DBMS에서 생성 및 참조하는 파일이므로, 개발자가 질의 실행계획에 힌트를 추가하는 등과 같은 직접 편집을 통한 질의 최적화를 수행할 수 없음