Oracle 성능에 영향을 미치는, Optimizer가 쿼리결과를 도출하는 실행계획은 크게 두가지 기준에 따라 진행될 수 있다.
Optimizer가 실행계획을 결정하는데 어떠한 요건을 기준으로 하는지에 대한 기준이며, 이 기준에 따라 실행속도 및 Cost 등이 달라진다.
미리 정해진 규칙에 따라 Optimizer의 실행계획을 결정한다.
따라서 쿼리를 실행하는데 융통성이 없고, 특히 데이터 통계 및 소모 비용 등을 고려하지 않으므로 효율적이지 못한 방식일 수 있다.
데이터에 대한 통계, 소모 비용 등을 고려하여 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을 선택한다.
RBO/CBO - https://sksstar.tistory.com/134