Topic

RBO(Rule-Based Optimizer) vs CBO(Cost-Based Optimizer)

JackerLab 2025. 4. 20. 10:27
728x90
반응형

개요

RBO(Rule-Based Optimizer)와 CBO(Cost-Based Optimizer)는 데이터베이스 관리 시스템(DBMS)에서 SQL 실행 계획을 수립할 때 사용하는 두 가지 대표적인 옵티마이저 방식입니다. 쿼리 성능에 중대한 영향을 미치는 이 두 방식은 시대 흐름에 따라 CBO 중심으로 발전해 왔으며, DB 성능 튜닝 및 SQL 최적화에 있어 중요한 이해 포인트입니다. 이 글에서는 RBO와 CBO의 개념, 비교, 작동 원리, 활용 전략 등을 상세히 다룹니다.


1. 개념 및 정의

구분 설명
RBO (Rule-Based Optimizer) 미리 정해진 규칙(rule)에 따라 SQL 실행 계획을 결정하는 방식
CBO (Cost-Based Optimizer) 통계 정보와 비용(cost)을 기반으로 최적의 실행 계획을 선택하는 방식
  • RBO: 간단하고 예측 가능하지만, 상황 변화에 둔감
  • CBO: 복잡하지만 다양한 실행 경로를 비교 분석해 더 나은 성능 제공 가능

2. 주요 차이점 비교

항목 RBO CBO
기준 정해진 규칙 비용 기반 (통계, 리소스 소비량 등)
유연성 낮음 높음
실행 계획 수립 고정 우선순위 기반 다양한 후보 중 최적 선택
통계 활용 사용하지 않음 테이블/인덱스 통계 적극 활용
최신 DBMS 지원 거의 없음 대부분의 현대 DBMS에서 기본 적용

RBO는 구버전 DB에 남아있는 방식이며, CBO는 최신 쿼리 최적화의 핵심입니다.


3. 작동 방식

단계 RBO CBO
1 SQL 문 분석 SQL 문 분석
2 규칙 적용 (e.g., 인덱스 우선) 통계 수집 (e.g., cardinality, selectivity)
3 우선순위 기반 실행 계획 수립 후보 실행 계획 생성 및 비용 계산
4 고정된 우선순위 실행 가장 비용이 낮은 실행 계획 선택

CBO는 옵티마이저 통계의 품질에 따라 실행 계획의 품질도 달라집니다.


4. 실무 활용 전략

전략 설명
옵티마이저 통계 갱신 CBO 성능 극대화 핵심 요소 주기적 분석 권장 (ANALYZE TABLE 등)
힌트 사용 RBO처럼 의도한 실행 경로 유도 가능 /*+ INDEX(table col) */ 등 활용
실행 계획 확인 EXPLAIN PLAN, AUTOTRACE로 확인 예상과 다를 경우 통계 또는 힌트 조정
DBMS 설정 확인 DB 옵티마이저 모드 확인 및 설정 변경 Oracle의 경우 OPTIMIZER_MODE 파라미터 활용

현대 환경에서는 대부분 CBO 기반이며, 성능 이슈는 통계/쿼리 튜닝이 중심입니다.


5. 활용 예시 및 적용 사례

분야 RBO 적용 예시 CBO 적용 예시
레거시 시스템 Oracle 8 이전 시스템에서 고정 실행 계획 사용 최신 Oracle, PostgreSQL, SQL Server 등에서 비용 기반 최적화
배치 처리 규칙 기반으로 반복 쿼리 처리 대용량 테이블의 조인 순서/인덱스 선택 최적화
분석 쿼리 고정된 인덱스 우선 전략 통계 기반으로 효율적인 GROUP BY/AGG 선택

CBO는 복잡한 쿼리 구조와 다양한 데이터 양에 효과적으로 대응할 수 있습니다.


6. 결론

RBO와 CBO는 데이터베이스 쿼리 성능을 결정짓는 핵심 옵티마이저 전략입니다. RBO는 간단하지만 유연성이 부족하고, CBO는 통계 기반으로 유동적인 실행 계획을 제시할 수 있습니다. 현재 대부분의 DBMS는 CBO를 중심으로 진화하고 있으며, DB 성능 최적화를 위해서는 CBO 통계 관리와 쿼리 튜닝 역량이 필수입니다.

728x90
반응형

'Topic' 카테고리의 다른 글

SQL 처리 과정(SQL Processing Steps)  (0) 2025.04.20
옵티마이저(Optimizer)  (0) 2025.04.20
DMBOK(Data Management Body of Knowledge)  (0) 2025.04.20
SNA(Social Network Analysis)  (1) 2025.04.20
데이터 임퓨테이션(Data Imputation)  (0) 2025.04.20