통계정보
통계정보는 최적의 실행계획 수립을 위해 옵티마이저가 실행계획 작성 시 참조하는 정보 입니다.
옵티마이저의 실행계획 수립에 영향을 미치는 정보이므로, 효율성을 강조하는 비용기반방식 옵티마이저 (Cost Base Optimizer, CBO)에서의 통계정보는 더욱 중요해졌습니다.
1. 통계정보의 필요성
Index Scan 또는 Full Scan 등 옵티마이저는 통계정보에 따라 더 효율성이 높은 방식을 채택해 데이터를 처리합니다.
Example
C1=3인 row들의 C1, C2값 추출 방법
Table T (C1 NUMBER, C2 VARCHAR2(10))
Index I ON T(C1)
SELECT * FROM T WHERE C1=3
Case 1. 값이 광범위하게 분포된 경우
row 개수: 10,000개 / C1=3인 row 개수: 1개
-> Index Scan 이 더 효율적인 방법 입니다.

그림10. 통계정보 반영한 Index Scan이 효율적인 조건
Case 2. 특정 값으로 집중된 경우
row 개수: 10,000개 / C1=3인 row 개수: 대다수
->Table Scan 이 더 효율적인 방법 입니다.

그림11. 통계정보 반영한 Table Scan이 효율적인 조건
2. 필요 정보
통계정보 수집 시 비용 계산을 위해 필요한 정보 입니다.
- Table level: Row 개수, Block 개수 등
- Index level: B-tree level, Leaf block 개수, Clustering factor 등
- Column level: 최대값, 최소값, 분포도 등