top of page

INCLUDE INDEX

include index

  • 인덱스키가 아닌 컬럼도 리프 레벨에 같이 추가 됨
    인덱스가 아닌 컬럼도 인덱스 수준에서 검색이 가능하여 lookup하지 않아 쿼리 성능이 향상

  • 비클러스터형 인덱스에만 생성 가능

  • 인클루드 컬럼이 리프 레벨에만 저장이 되고 넌리프 레벨에는 인덱스 키값으로만 트리를 구성하므로 트리의 깊이나 인덱스

  • include에 컬럼을 많이 추가하게 되면 크기가 커짐(?)

select만 자주하는 쿼리인지 update(dml)를 자주하는 쿼리인지 알아야함
(update할 때 인클루드 인덱스 사용하면 다 뒤지기 때문에 속도가 느릴 수 있다?)

주로 select문일때 많이 쓰는데 모든 조건을 다 보고 생성해야하는듯?

질문
include index가 왜 클러스터 인덱스 모양인가..?
비트리 구조에 함께 있지 않지만 데이터를 인덱스가 가지고 있다고 봐야함
include컬럼이 많을수록 인덱스 사이즈가 늘어남
힙이나 클러스터에 연결 되어 있다고 볼 수 없음
책: 리프레벨에만 저장되고 넌리프 레벨에는 인덱스 키 값으로만 트리를 구성하므로 트리의 깊이나 인덱스 크기에 크게 영향을 미치지 않는다

CREATE NONCLUSTERED INDEX IX_THeap_col3_col5 on THeap { col3 ASC , col5 ASC }

넌리프 레벨에는 col3 | col5 | heap rid
리프 레벨에는 col3 | col5 | heap rid | col2 가 생성되어 있음

bottom of page