글
이 글은 오라클 기반의 글 입니다.
1. RBO (Rule Based Optimizer)
머지 않아 소멸될 것이므로 간단한 개념만 소개한다.
RBO는 인덱스 구조나 비교연산자에 따라 순위를 부여하여 이것을 기준으로 최적의 경로를 결정
순위
① ROWID로 1 로우 액세스
② 클러스터 조인에 의한 1 로우 액세스
③ Unique HASH Cluster에 의한 1 로우 액세스
④ Unique INDEX에 의한 1 로우 액세스
⑤ CLUSTER 조인
⑥ Non Unique HASH Cluster Key
⑦ Non Unique Cluster Key
⑧ Non Unique 결합 인덱스
⑨ Non Unique한 컬럼 인덱스
⑩ 인덱스에 의한 범위 처리
⑪ 인덱스에 의한 전체범위처리
⑫ Sort Merge 조인
⑬ 인덱스 컬럼의 MIN, MAX 처리
⑭ 인덱스 컬럼의 ORDER BY
⑮ 전체테이블 스캔
RBO 의 단점
통계정보 무시
RBO 의 장점
옵티마이저의 판단이 매우 규칙적이고 분명하며 사용자가 정확히 예측할 수 있다.
전략적인 인덱스를 구성할 수만 있다면 이 규칙의 보편 타당성이 매우 높다.
2. CBO(Cost Based Optimizer)
미리 작성해둔 다양한 통계정보를 참조한다. 통계정보에는 테이블의 로우 수와 블록 수, 블록 당 평균 로우 수, 로우의 평균길이, 컬럼별 상수값의 종류, 분포도, 컬럼 내 NULL 값의 수, 클러스터링 팩터, 인덱스의 깊이, 최대 최소값, 리프 블록 수, 가동 시스템의 I/O나 CPU/ 사용정보 등 많은 정보 보유
CBO 의 장점
- 최대의 장점은 현실을 감안한 판단을 할 수 있다(통계정보 기반)
- 통계정보의 관리를 통해 최적화를 제어 할 수 있다
- 옵티마이져를 깊이 이해하고 있지 않더라도 최소한의 성능이 보장된다
쓰다가 일이 생겨서... 추후 업데이트!
'MSSQL 2008 > SQL' 카테고리의 다른 글
MSSQL 저장프로시져 SP 모니터하기 (0) | 2014.03.09 |
---|---|
[MSSQL] 데이터베이스 스키마, 데이터 추출/주입(스크립트 이용) (0) | 2014.03.05 |
UPDATE 기본 문법 (0) | 2014.03.03 |
INSERT 기본 문법 (0) | 2014.03.03 |
SELECT 기본 문법 (0) | 2014.03.03 |