+/Database

쿼리 최적화 및 성능 향상 기법 - 인덱스(데이터 스캔 방식)

writtenbyrla 2024. 5. 8. 17:14
 

쿼리 최적화 및 성능 향상 기법 - 인덱스의 개념과 종류

인덱싱이란? 목차와 같은 개념으로 데이터 조회 시 인덱스 범위 내에서 데이터를 먼저 찾음으로써 데이터를 빠르게 조회할 수 있도록 한다.   인덱스 생성 및 삭제 방법(MS-SQL 기준)/* 인덱스 생

writtenbyrla.tistory.com

 

지난 글에서 인덱스의 개념과 종류에 대해서 알아보았다.

오늘은 데이터 스캔 방식에 대해 알아보고자 한다.

 

 


 

 

 

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 연산이 효율적이라고 판단한 상황에 수행되는 방식