[운영 종료] TmaxTibero Tech Blog

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

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

튜닝

[Tibero] SQL Tuning (9)

TmaxTiberotech 2023. 6. 8. 17:47

본 문서에서는 통계정보 수집 시 필요한 정보 중 Column level의 분포도를 표현하는

히스토그램에 대해 안내 합니다.

 

 

통계정보

2. 필요 정보

2.1. 히스토그램 (Histogram)

특정 변수에 대한 구간별 빈도수를 나타내는 도구인 히스토그램은 Column level의 분포도를

표현하는 통계정보 입니다. 히스토그램을 관리함으로써 옵티마이저의 잘못된 실행계획

생성을 방지할 수 있습니다.

2.1.1. 히스토그램 특징

  • 특정값이 집중적으로 분포되어 있을 시 더욱 효율적 입니다.
  • 사용자가 Bucket수를 지정할 수 있습니다.

 

2.1.2. 히스토그램 종류

Height-balanced Histogram

Bucket 수보다 변수값이 많은 경우로, Bucket에 한 개 이상의 값들이 분포되어 있을 시 나타나는

형상 입니다. Bucket 내에 여러 값이 분포되어 정확한 빈도 확인은 어려우나 분포가 잘 되어 있는

경우에는 일정 부분 계산이 가능합니다.

Height-balanced Histogram
그림12. Height-balanced Histogram
 

 

Frequency Histogram

Bucket 수와 변수 수가 일치하는 경우로, 동일한 값이 집중적으로 분포되어 있을 시 나타나는

형상 입니다.

 

Frequency Histogram
그림13. Frequency Histogram
 

 

 

2.1.3. 선택도 (Selectivity) 계산

Selectivity는 전체 데이터에서 특정값을 얼마나 잘 선택해 낼 수 있는지에 관한 지표 입니다.

Selectivity를 참고해 데이터베이스 내 인덱스를 생성할 수 있습니다. 

Selectivity가 높은 컬럼에 인덱스를 설정함으로써 인덱스 효율을 높일 수 있습니다.

   

 

Selectivity= Cardinality* / 전체 데이터 수

* Cardinality: 데이터 집합 내 중복되지 않는 데이터 수 입니다.

 ​

 

 

 

또한 히스토그램을 사용해 Selectivity를 계산할 수 있습니다.

Example

Height-balanced Histogram 활용한 Selectivity 계산 예시
그림14. Height-balanced Histogram 활용한 Selectivity 계산 예시

 

 

                                옵티마이저는 C1=3인 row를 전체의 20%라고 예측합니다.

 

2.1.4. Bucket 설정 정보

컬럼 내 모든 값은 균일하게 분포하고 있다고 판단하므로 기본 옵션은 Bucket 1개 입니다.

히스토그램 수집은 GATHER_XXX_STATS의 method_opt 파라미터로 결정되며

Bucket 사이즈를 지정합니다.

​​

Example

method_opt=>'for all column size 10'

method_opt=>'‘for columns size 10 C1 C2'

2.1.5. 히스토그램 수집 Column type

통계정보로서 컬럼 데이터 분포도를 저장한 히스토그램이 수집할 수 있는 데이터 타입 입니다.

  • NUMBER
  • CHAR
  • VARCHAR2
  • DATE
  • TIME
  • TIMESTAMP

 

☞[Tibero] SQL Tuning (10)에서 계속됩니다.​

 

 

 

 

'튜닝' 카테고리의 다른 글

[Tibero] SQL Tuning (11)  (0) 2023.06.12
[Tibero] SQL Tuning (10)  (0) 2023.06.09
[Tibero] SQL Tuning (8)  (0) 2023.06.08
[Tibero] SQL Tuning (7)  (0) 2023.06.05
[Tibero] SQL Tuning (6)  (0) 2023.06.05