지난 글에서 인덱스의 개념과 종류에 대해서 알아보았다.
오늘은 데이터 스캔 방식에 대해 알아보고자 한다.
1. Table Scan
인덱스가 없이 데이터가 무작위로 저장되어 있는 상태에서 테이블 전체를 읽어서 조회하는 방식
2. Clustered Index Scan
- 클러스터형 인덱스의 키로 지정된 열을 탐색의 조건으로 사용할 수 없는 경우에 모든 행을 읽어내면서 조회하는 방식
- 인덱스 키가 Birth일 때, ID=’B02’ 조건에 맞는 데이터를 조회하기 위해 결국은 Birth 기준으로 모든 데이터를 읽어야 조건에 맞는 데이터 검색이 가능
- Index Full Scan
- 데이터 검색을 위한 최적의 인덱스가 없을 때 차선으로 선택되는 방식
- 인덱스가 차지하는 면적은 테이블보다 훨씬 적으므로 Table Full Scan보다는 Index Full Scan 방식이 더 효율적
SELECT문을 날렸을 때 실행계획을 보면 인덱스 검색에 관한 내용을 확인할 수 있다.
3. Clustered Index Seek
클러스터형 인덱스의 키 값을 통해 조건을 탐색하여 만족하는 범위만 읽어내는 방식
4. Non-Clustered Index Scan
구문에서 요구하는 열들이 넌클러스터형 인덱스에 모두 포함되어 있지만, 키로 정의된 인덱스가 탐색의 조건으로 사용될 수 없는 경우에 모든 행을 읽어내면서 조회하는 방식
5. Non-Clustered Index Seek
비 클러스터형 인덱스에 모두 포함되어 있으면서 키로 지정한 열이 탐색의 조건으로 사용되고 있는 상황에서 옵티마이저가 SEEK 연산이 효율적이라고 판단한 상황에 수행되는 방식
'+ > Database' 카테고리의 다른 글
쿼리 최적화 및 성능 향상 기법 - 인덱스의 개념과 종류 (0) | 2024.05.02 |
---|---|
[MS-SQL] 쿼리 성능 측정 방법 (0) | 2024.04.29 |