옵티마이저가 잘못된 액세스 방법을 선택한 경우 INDEX, INDEX_DESC, INDEX_SS, INDEX_FFS, FULL 힌트 등을 사용하여 액세스 방법을 바꿀 수 있다.
참고로, 인덱스 신규 생성이나 컬럼 추가는 인덱스 설계 변경으로 구분하고, 단순히 힌트를 통해, 있는 인덱스를 사용하도록 하는 것은 액세스 방법 변경으로 구분한다.
참고로, 인덱스 신규 생성이나 컬럼 추가는 인덱스 설계 변경으로 구분하고, 단순히 힌트를 통해, 있는 인덱스를 사용하도록 하는 것은 액세스 방법 변경으로 구분한다.
개선 전
- (문제 상황) 고객관계 데이터를 과다하게 액세스함
- (문제 원인) 주고객번호 컬럼 조건절이 액세스 범위를 크게 줄일 수 있고, 그 컬럼이 선두인 PK 인덱스가 있음에도 불구하고, 상대적으로 비효율적인 액세스 방법인 IX02 인덱스 사용 실행계획이 수립되었음
- 참고로, PK인덱스 사용하는 것과 IX02 인덱스 사용하는 것 모두 비용이 4로 동일하게 나오는데, (힌트를 주지 않는다면) 옵티마이저는 이런 경우 알파벳 정렬 순으로 앞에 있는 인덱스를 선택함 (비용계산에 중요한 요소인 컬럼 distinct 값은 아래와 같음)
개선 후
- (개선 방안) PK 인덱스가 사용되도록 ‚INDEX(고객관계(주고객번호))‛ 힌트를 추가함
- (개선 결과) 주고객번호 컬럼 조건절이 인덱스 access 조건이 되면서 인덱스 및 테이블 액세스량이 현저히 감소함
댓글
댓글 쓰기