RBO 란 (Rule-Based Optimizer) 의 약자로
하나의 SQL에 대한 여러 개의 execution plan 가운데 가장 높은 순위의 execution plan을 항상 사용하도록 하는 법입니다. (Rank Rule 사용.)

  • 경험적으로 순위가 매겨진 오퍼레이션에 기초한 실행계획을 선택합니다.
  • SQL 문을 실행하기 위한 방법이 하나 이상있다면, 규칙기준 접근 방식은 순위가 높은 오퍼레이션을 이용합니다.
  • 순위가 높은 오퍼레이션은 순위가 낮은 오퍼레이션보다 빨리 실행됩니다.
  • 수립될 실행계획이 예측 가능하기 때문에 사용자가 원하는 처리 경로로 유도하기 쉽습니다.

다만 오라클 10G 부터는 RBO 에 대한 지원 자체가 중단되었기 때문에 그로 인해 우리 서버의 경우 DBA가 자체적으로 ‘통계’ 수집작업을 하도록 결정되었습니다.

통계내역은 이주 월요일밤부터 수집된 내역을 퍼블리싱 하였고,
모든 테이블이 대상으로 하였고, 작업시 오라클 SQL AREA 가 프러싱 되어 하드 파싱이 다량 발생하였지만,
시스템에 무리를 줄 수준은 아니었으며,
현재 OTLP성 작업에는 실행시 이상이 없는 걸로 파악되었으며,
지속적인 테스트를 하고 있는 중입니다.


참조