인덱스 스캔 방법 7가지
INDEX RANGE SCAN :
인덱스에서 조건과 일치하는 행을 찾았을 때에, 바로 스캔을 멈추지 않고 아래의 행까지 스캔하는 것
만약 조건절이 UNIQUE 제약 조건(행의 값이 유일무이)이 걸려있다면, INDEX RANGE SCAN을 하지 않음
인덱스가 있음에도 불구하고 FULL TABLE SCAN을 한다면, 아래와 같이 힌트를 명시한다
INDEX SCAN : /+index(테이블명 인덱스명)/
select /+index(emp emp_sal)/ ename, sal
from emp
where sal = 1600;
중복된 값을 가지는 칼럼에 대해선 CREATE UNIQUE INDEX가 안됨
CREATE INDEX emp_job
ON emp(job);
일치하는 행들을 연달아서 스캔하다가, 일치하지 않는 값을 만나면 스캔을 멈추고 rowid로 table access를 함
인덱스 칼럼을 가공하지 말아라
인덱스 컬럼을 가공하여 조건을 걸게 되면, 인덱스 테이블 access를 하지 못하고 full table scan을 하게 됨
문자형 칼럼예시
날짜형 칼럼예시