2008년 1월 29일 화요일

Data Access Pattern - INDEX RANGE SCAN

1.발생규칙
•Non-Unique Index를 Access하는 경우
•Unique Index를 구성하고 있는 컬럼 중 일부 컬럼에만 값이 공급된 경우
•Unique Index에 Range 조건(like, between, >, <, >=, <=)으로 값이 공급되는 경우

2.Access 방식
•해당 조건을 만족하는 범위 + 아닌 값 하나(1PlusScan)를 읽게 된다.
•Range 조건이 들어온 경우 Index구성 순서상 이후에 있는 컬럼에 공급된 조건들은 작업범위를 줄이는데 작용하지 못한다. 예외상황:9i 이후부터 index skip scan

3.적용범위
•10만건 이하의 건수를 access 할때
•10만건 이상이라도 부분범위처리가 가능할때
•10만건 이상이라도 인덱스만 scan 하고 table access 가없을때
•주로 OLTP

4.HINT /*+ INDEX(테이블명 혹은 ALIAS 인덱스명) */
•실행계획
select * from emp where mgr > 7839;

-------------------------------------------------------
SELECT STATEMENT GOAL: CHOOSE
TABLE ACCESS (BY [INDEX] ROWID) OF 'T_EMP'
INDEX (RANGE SCAN) OF 'T_EMP_IDX01' (NON-UNIQUE)

댓글 없음: