[Oracle] 인덱스를 활용한 SORT 연산 생략, ORDER BY 절 컬럼 가공


[Oracle] 인덱스를 활용한 SORT 연산 생략, ORDER BY 절 컬럼 가공

인덱스를 이용한 SORT 연산 생략 인덱스를 Range Scan 할 수 있는 이유는 데이터가 정렬되어 있기 때문 찾고자 하는 데이터가 정렬된 상태로 서로 모여있기에 전체가 아닌 일정 부분만 읽다가 멈출 수 있다. 테이블과 달리 인덱스는 정렬되어 있다. 인덱스를 사용하는 이유 인덱스가 정렬되어 있기에 Range Scan이 가능하고 소트 연산 생략 효과도 부수적으로 얻게 됨 장비번호 + 변경일자 + 변경순번 순으로 PK를 구성한다고 하면 PK 인덱스에서 장비번호, 변경일자가 같은 레코드는 변경순번 순으로 정렬된다. SELECT * FROM 상태변경이력 WHERE 장비번호 = 'C' AND 변경일자 = '20230711'; 장비번호와 변경일자를 모두 '=' 조건으로 검색할 때 PK 인덱스를 사용하면 결과 집합은 변경순번 순으로 출력된다. 옵티마이저는 위와 같은 속성을 활용해서 ORDER BY가 있어도 정렬 연산을 따로 수행하지 않는다. PK 인덱스를 스캔하면서 출력한 결과 집합은 어차피 ...


#ORDERBY #SORT #오라클 #인덱스SORT

원문링크 : [Oracle] 인덱스를 활용한 SORT 연산 생략, ORDER BY 절 컬럼 가공