▣ 질의 최적화 기법_옵티마이저(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에서 생성 및 참조하는 파일이므로, 개발자가 질의 실행계획에 힌트를 추가하는 등과 같은 직접 편집을 통한 질의 최적화를 수행할 수 없음
'데이터베이스' 카테고리의 다른 글
SQL_조작연산_무결성 제약 조건, 도메인, 키, 기본키 엔티티 무결성, 외래키, 참조 무결성 제약조건, ON DELETE UPDATE CASCADE RESTRICT SET NULL DEFAULT (0) | 2021.10.01 |
---|---|
트랜잭션_로킹 기법의 로크(LOCK) 단위_오버헤드, 동시성 (0) | 2021.09.17 |
동적 해싱 방법_확장성 해싱(extendible hashing), 해시, hash, 충돌 해결 기법, 버킷, 모조키 (0) | 2021.09.17 |
데이터 웨어하우징(DW), 주제지향, 시계열, 비휘발성, 통합, 주시비통 (0) | 2021.09.17 |
경혐적(heuristic) 규칙 질의 최적화_질의 트리(query tree), 질의 그래프(query graph) (0) | 2021.09.17 |