Innovating today, leading tomorrow

Tibero - 튜닝
[Tibero] SQL Tuning (12)

[Tibero] SQL Tuning (12)

본 문서에서는 상황에 따른 다양한 Tuning 사례를 안내 합니다.

1.WHERE 절 함수 변환

EXAMPLE

NVL, JOIN Prediacate로 인해 selectivity 계산이 부정확해집니다.

1.1. ? = NULL

?가 NULL이면 C1=C1, selectivity는 1 입니다.
? is NULL이면 항상 true 입니다.

1.2. ? is not NULL

?가 NULL이 아니면 C1=? 입니다.

WHERE 절 함수 변환 예시

그림15. WHERE 절 함수 변환 예시

Where 절 함수는 ‘C1=?’ 또는 ‘? is NULL’ 로 변경할 수 있습니다.

2.통계 분포가 고르지 못한 경우

2.1. 조건문의 Selectivity

EXAMPLE

D.START_DATE <= ‘20130521’ AND
D.END_DATE >= ‘20130521’

위 조건을 만족하는 실제 Row 개수 확인 결과 입니다.
또한 통계 정보에서는 이상이 없음을 확인할 수 있습니다.

START_DATE와 END_DATE 조건을 따로 제시해봅니다.

END_DATE값 분포입니다.
모든 Row가 ‘20130521’ 조건을 만족합니다.

2.2. 예측 Row 수가 의심될 경우

특정 테이블에 대한 예측 row 수에 이상이 있을 경우, 우선 통계 정보를 확인합니다.

통계 정보에 문제가 없을 시, 실 데이터 분포도를 확인합니다.

분포가 고르지 못할 경우, 통계정보 수집 옵션을 변경합니다.