[운영 종료] TmaxTibero Tech Blog

티맥스티베로 공식 블로그는 https://tmaxtibero.blog/ 로 이전되었습니다.

티맥스티베로 공식 블로그 이전 자세히보기

튜닝

[Tibero] SQL Tuning (8)

TmaxTiberotech 2023. 6. 8. 10:24

통계정보

통계정보는 최적의 실행계획 수립을 위해 옵티마이저가 실행계획 작성 시 참조하는 정보 입니다.

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

통계정보 반영한 Index Scan이 효율적인 조건
그림10. 통계정보 반영한 Index Scan이 효율적인 조건

 

Case 2. 특정 값으로 집중된 경우

              row 개수: 10,000개 / C1=3인 row 개수: 대다수

              ->Table Scan 이 더 효율적인 방법 입니다.

통계정보 반영한 Table Scan이 효율적인 조건
그림11. 통계정보 반영한 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