본문 바로가기
자격증/sqld

[sqld 2장] 규칙 기반 옵티마이저 vs 비용 기반 옵티마이저 정리 및 기타 내용

by 딸기뚜왈기 2025. 3. 5.

3. RBO vs CBO 비교 요약

 

구분 규칙 기반 옵티마이저 (RBO) 비용 기반 옵티마이저 (CBO)
기본 개념 미리 정해진 우선순위에 따라 실행 계획 결정 실행 비용을 계산하여 최적의 실행 계획 선택
데이터 고려 여부 데이터 분포나 크기를 고려하지 않음 통계 정보를 바탕으로 최적화
성능 최적화 방식 정적인 규칙 적용 동적으로 최적의 경로 선택
통계 정보 필요 여부 필요 없음 필요함 (ANALYZE TABLE, DBMS_STATS 사용)
변화 대응력 데이터 변화에 적응하지 못함 데이터 변화에 따라 실행 계획 자동 최적화
사용 환경 오래된 데이터베이스 (현재 거의 사용 안 함) 최신 데이터베이스 (Oracle, MySQL, PostgreSQL 등)
장점 실행 계획 예측 가능, 시스템 부하 적음 실행 성능 최적화, 데이터 환경 변화에 강함
단점 데이터 변화에 둔감, 비효율적 실행 가능 통계 정보가 부정확하면 최적화 실패 가능

 

규칙기반 옵티마이저에서 제일 낮은 우선순위: 전체 테이블 스캔


규칙기반 옵티마이저에서 제일 높은 우선순위: ROWID를 활용하여 테이블을 액세스하는 방법.(행에 대한 고유 주소를 사용하는 방법.)

 

SQL 처리 흐름도 : SQL문의 처리 절차를 시각적으로 표현, 인덱스 스캔 및 전체 테이블 스캔 등의 액세스 기법을 표현할 수 있음. 성능적인 측변도 표현할 수 있음. 처리 흐름도만 보고 실행 시간을 알 수는 없음.

 

인덱스 범위 스캔 : 결과 건수만큼 반환. 

 

Balance Tree : 관계형 데이터베이스에서 가장 많이 사용되는 인덱스.

 

B-Tree 인덱스 : 브랜치 블록과 리프 블록으로 구성됨. 브랜치 블록은 분기를 목적으로 하고 리프 블록은 인덱스를 구성하는 컬럼의 값으로 정렬된다. 일반적으로 OLTP 시스템 환경에서 가장 많이 사용된다.

CLUSTERED 인덱스 : 인덱스의 리프 페이지가 곧 데이터 페이지, 리프 페이지의 모든 데이터는 인덱스 키 컬럼 순으로 물리적으로 정렬되어 저장됨.

BITMAP 인덱스 : 시스템에서 사용될 질의를 시스템 구현 시에 모두 알 수 없는 경우인 DW및 AD-HOC 질의 환경을 위해서 설계됨. 하나의 인덱스 키 엔트리가 많은 행에 대한 포인터를 저장하고 있는 구조.