통계정보
통계정보는 최적의 실행계획 수립을 위해 옵티마이저가 실행계획 작성 시 참조하는 정보 입니다.
옵티마이저의 실행계획 수립에 영향을 미치는 정보이므로, 효율성을 강조하는 비용기반방식 옵티마이저 (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 이 더 효율적인 방법 입니다.

Case 2. 특정 값으로 집중된 경우
row 개수: 10,000개 / C1=3인 row 개수: 대다수
->Table Scan 이 더 효율적인 방법 입니다.

2. 필요 정보
통계정보 수집 시 비용 계산을 위해 필요한 정보 입니다.
- Table level: Row 개수, Block 개수 등
- Index level: B-tree level, Leaf block 개수, Clustering factor 등
- Column level: 최대값, 최소값, 분포도 등
☞[Tibero] SQL Tuning (9)에서 계속됩니다.
'튜닝' 카테고리의 다른 글
[Tibero] SQL Tuning (10) (0) | 2023.06.09 |
---|---|
[Tibero] SQL Tuning (9) (0) | 2023.06.08 |
[Tibero] SQL Tuning (7) (0) | 2023.06.05 |
[Tibero] SQL Tuning (6) (0) | 2023.06.05 |
[Tibero] SQL Tuning (5) (0) | 2023.06.01 |