728x90
반응형

RBO, CBO

실행계획탐색, 비용산정, 통계정보

Query Rewrite, Query Optimization

QEP Generation

 

[개념] 사용자가 질의한 SQL문에 대해 실행계획 탐색,비용추정하여 최적의 실행계획 수립하는 DBMS 핵심엔진

[목표] 전체처리속도최적화(All rows), 최초응답속도최적화(First rows)

[핵심기능] 실행계획탐색, 비용산정

[영향요소] SQL연산자형태, 옵티마이징팩터, 제약설정,힌트,통계정보,패러미터

[SQL 최적화과정] Query→Parser→[쿼리Rewrite(질의변환기, 서브쿼리와 뷰 병합수행)→쿼리Optimization(RBO/CBO) ]→QEP생성→쿼리실행→결과

[종류]

1)규칙기반(우선순위 규칙 기반 액세스 경로 평가)

2)비용기반(비용기반 최적화 수행)

 

1)CBO (통계정보 반영필요) :

우선순위: BY ROWID(직접접근) > BY INDEX(랜덤억세스) > Full Table Scan(순차스캔)

[Cost구성] I/O횟수, CPU사용량, 메모리사용량, 네트워크 전송량

 

2)RBO (Rule기반) :

구성요소: 쿼리Transformer(파싱쿼리표준변환), Estimator(비용산정), Plan Generator(쿼리실행계획생성) [Estimator] "선택도","분포도",코스트 계산

 

[한계] [시통바하규]  

1)시간제약 : 실행계획 수립시간 역시 Cost

2)통계정보의 한계: 정보한계, 다양한 상황 고려 불가

3)바인드변수 사용 SQL은 균등분포 가정

4)하드웨어 성능

5)규칙의존성(부분적)  

 

 

 

 

CBO 옵티마이저

728x90

'04.Database' 카테고리의 다른 글

DB 성능개선 - 성능평가 - OLTP (TPC-C , TPC-E) , DW (TPC-H, setQuery)  (0) 2020.06.04
데이터 무결성  (0) 2020.06.04
DB 성능개선 - DB 개선  (0) 2020.06.04
DB 회복기법  (0) 2020.06.04
DB 언어  (0) 2020.06.04
Posted by Mr. Slumber
,