데이터 저장 구조 및 I/O 메커니즘

Posted by : on

Category : sql_tuning


인덱스 확장기능

2.3.1. Index Range Scan

Index Range Scan은 B*Tree 인덱스의 일반적인 형태.

인덱스 루트에서 리프 블록까지 수직적 탐색 후 필요한 범위만 스캔

Range Scan을 위해 선두 컬럼은 가공하지 말아야한다.

2.3.2 Index Full Scan

수직적 탐색 없이 인덱스 리프 블록을 처음부터 끝까지 수평적 탐색하는 방식

검색을 위한 최적의 인덱스가 없을 때 차선으로 선택됨

Index Range Scan을 할 수 없을때 테이블 전체 스캔하기 보다 인덱스 전체 스캔하는게 유리하다.

Index Full Scan하면 인덱스 컬럼 순으로 정렬되기 때문에 sort Order By 연산을 생략한다.

2.3.3 Index Unique Scan

수직적 탐색만으로 데이터를 찾는 스캔 방식. Unique 인덱스를 ‘=’ 조건으로 탐색하는 경우

Unique 인덱스라고 해도 범위검색 조건(between, 부등호, like) 검색할때는 Index Range Scan으로 탐색 됨.

2.3.4 Index Skip Scan

인덱스 선두 컬림이 조건절에 없어도 인덱스를 활용한다.

인덱스 선두 컬럼의 Distinct Value 개수가 적고 후행 컬럼의 Distinct Value 개수가 많을 때 유용

Index Range Scan이 불가능하거나 효율적이지 못할 때 사용

2.3.5 Index Fast Full Scan

논리적인 인덱스 트리 구조를 무시하고 인덱스 세그먼트 전체를 Multiblock I/O 방식으로 스캔

세그먼트 전체를 순서대로 스캔, 결과 순서 보장 x, 병렬스캔 가능, 인덱스 포함된 컬럼으로만 조회할때 가능

2.3.6 Index Range Scan Descending

Index Range Scan과 동일한 스캔 방식이지만 뒤에서 부터 앞쪽으로 스캔


About GoldTree
GoldTree

안녕하세요.

Email : gold@onetreegold.com

Website : https://onetreegold.com

About GoldTree

Java, Web, Db

Categories
Useful Links