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 옵티마이저
'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 |