테이블 엑세스 최소화

인덱스 컬럼 추가로 튜닝

인덱스 Range 탐색 결과집합의 대부분이 **테이블 엑세스 단계에서 필터 조건에 의해 버려지는 레코드가 많을 때(**인덱스 스캔 비효율이 있는 것이 아님) → 인덱스 컬럼 순서를 조정해도 해결되지 않음 → 인덱스 컬럼 추가 만이 해법 (새로운 인덱스를 생성하면 좋지만 추가하기 힘든 상황일 때)

<SQL Trace 예시>

image.png

  1. 인덱스 스캔 과정에서 메모리 block 1011개, 물리적 block 900, 결과 반환 266,476 row 반환
  2. 266,476 row 만큼 테이블 랜덤 엑세스 발생, 랜덤 엑세스 과정에서 메모리 block 265,957(266,968-1011), 결과 반환 1,909 row 반환 → 1 row 읽는데, 약 1 block I/O 발생

(쿼리 전체 읽은 메모리 block 수가 266,968)

인덱스 클러스터링 팩터

인덱스 손익분기점