반응형

Index Range Scan

    인덱스 Range Scan이 되기 위한 선행 조건

    인덱스 Range Scan이 되기 위한 선행 조건 학교이름, 나이, 이름, 주소로 구성된 테이블이 있다고 가정해보자. 빠른 검색을 위해서 인덱스를 학교 이름, 나이, 이름으로 구성해서 만들었다고 가정해보자. CREATE INDEX SCOTT.student_idx ON SCOTT.STUDENT_TEST ("SCHOOL_NAME" ASC,"AGE" ASC,"NAME" ASC); 인덱스 구성의 순서로 인해 학교순으로 정렬하고, 나이로 정렬하고, 이름으로 정렬해서 데이터를 찾는다. 그렇기 때문에 이름을 조건으로 데이터를 검색하였을 때 결국 모든 리프노드를 다 검색해야한다. 그렇기 때문에 인덱스를 Range Scan 하기 위한 가장 첫 번째 조건은 인덱스 선두 컬럼이 조건절에 있어야한다. 그렇다면 만약 인덱스에 ..

    인덱스 기본 사용법과 인덱스 스캔이 불가능한 경우 소

    우리가 색인을 통해 단어를 찾는 순간을 생각해보자. ㄱ. 가나가방 장식가시 방석ㄴ.나방 나방 나무누에고치나무 장식누나 여기서 누에고치라는 단어를 찾을 때, 위에서 순차적으로 진행한다고 가정하였을 때 큰 어려움 없이 발견할 수있다. 이 방식을 Index Range Scan이라고 한다.반대로 장식이 포함된 단어를 찾아보자. 찾기 어려운 건 아니여도 모든 색인을 전부 확인해봐야한다. 이렇게 모든 색인을 다 확인하고 나서 찾을 수 있는 방식을 Index Full Scan 방식이라고 한다.그렇기 때문에 인덱스의 기준이되는 데이터 즉 컬럼을 가공하게되면 Range Scan이 불가능해진다. 정리하면 인덱스 기준이 가공되면 인덱스 스캔의 시작점을 찾는 수직적 탐색이 불가능해지기 때문이다. 몇 가지 쿼리를 예로 들어보자..

반응형