반응형
RBO
Oracle 6 버전 이하에서 시작된 프로그램입니다. 10g에서는 존재하지만 지원되지 않는 기능이며 11gR2 이후로는 사라진 기능입니다.
RBO는 미리 정해진 규칙에 의해 실행계획을 결정하게 됩니다.
아래는 미리 정해진 규칙이며 해당 순위에 따라 SQL을 수행하게 됩니다.
무조건 정해진 규칙을 따르고, 인덱스가 있으면 무조건 인덱스를 타기 때문에 인덱스 효율이 없는 경우도 있습니다.
순위 | 접근경로 |
1 | Single row by ROWID |
2 | Single row by cluster join |
3 | Single row by hash cluster key with unique or primary key |
4 | Single row by unique or primary key |
5 | Cluster join |
6 | Hash cluster key |
7 | Indexed cluster key |
8 | Composite index |
9 | Single-column index |
10 | Bounded range search on indexed columns |
11 | Unbounded range search on indexed columns |
12 | Sort-merge join |
13 | MAX or MIN of indexed column |
14 | ORDER BY on indexed column |
15 | Full table scan |
CBO
데이터에 대한 각종 통계를 사용하여 SQL을 수행하게 되고, 실제 SQL을 수행할 때 소요될 비용을 예측하고 그 값을 기준으로 실행계획을 결정하게됩니다.
무조건 정해진 규칙에 판단하기보다 통계에 근거하기 때문에 RBO보다 최적화된 판단이 나올 확률이 높습니다.
출처: https://sksstar.tistory.com/134 [겨울섬의 블로그]
튜닝을 할때 기본적인 옵티마이저의 종류와 작동원리에 대해서 간단히 설명을 정리해보았습니다.
반응형
'Oracle > 튜닝' 카테고리의 다른 글
AWR 딕셔너리 VIEW을 이용한 SQL Tuning 정보 추출 (0) | 2022.08.30 |
---|---|
실행계획에서 Sort 연산 관련 종류 (0) | 2021.12.14 |
Statspack (0) | 2021.06.22 |
Statspack 사용법 (0) | 2021.03.04 |
쿼리에 인덱스 힌트 사용하기(여러개 포함) (0) | 2020.10.07 |
댓글