[SQLD/P] RBO / CBO

Hyo Kyun Lee·2022년 11월 7일
0

SQLD/P

목록 보기
41/82

1. 개요

Oracle 성능에 영향을 미치는, Optimizer가 쿼리결과를 도출하는 실행계획은 크게 두가지 기준에 따라 진행될 수 있다.

  • RBO(Rule Based Optimization)
  • CBO(Cost Based Optimization)

2. RBO/CBO

Optimizer가 실행계획을 결정하는데 어떠한 요건을 기준으로 하는지에 대한 기준이며, 이 기준에 따라 실행속도 및 Cost 등이 달라진다.

2-1. RBO

  • Rule Based Optimization

미리 정해진 규칙에 따라 Optimizer의 실행계획을 결정한다.

따라서 쿼리를 실행하는데 융통성이 없고, 특히 데이터 통계 및 소모 비용 등을 고려하지 않으므로 효율적이지 못한 방식일 수 있다.

2-2. CBO

  • Cost Based Optimization

데이터에 대한 통계, 소모 비용 등을 고려하여 Optimizer의 실행계획을 결정한다.

full table scan, index range scan와 같은 scan 범위와는 상관없이, 해당 scan에 의한 소모비용(메모리, I/O횟수 등)에 의해 Optimizer 실행계획을 수립한다.

RBO라면 소모비용에 상관없이 index range scan을 선택하겠으나, CBO는 full table scan이라도 I/O횟수가 적다면 full table scan을 선택한다.

3. 참고자료

RBO/CBO - https://sksstar.tistory.com/134

0개의 댓글