본문 바로가기
DataBase/MSSQL

[MSSQL] 인덱스(index) 관련 쿼리

by 호호호호히히히히 2018. 6. 5.
728x90
반응형

--인덱스 생성


CREATE INDEX [INDEX NAME]

 ON [TABLE NAME](COLUMN NAME)


--인덱스 정보 확인

--인덱스명(index_name), 인덱스 설명 (index_description), 인덱스 키(index_keys)


EXEC sp_helpindex


--인덱스 정보조회 (단편화)


DBCC showcontig [TABLE NAME]


--인덱스 통계보기


DBCC show_statistics ([TABLE NAME], [INDEX NAME])


*참고

Updated : 통계가 최종 업데이트 된 날짜

Rows: 총 행수

Rows Sampled : 샘플링된 행 수 (통계 정보를 구하기 위해 샘플링된 행 수로 행 수가 많을 경우 샘플링함)

Steps : Histogram 단계수(MAX 200단계, 고유 인덱스가 아닐 경우 단계수 많아짐)

Average Key Length : 컬럼 값의 평균 길이 

All density : 밀도 (최대 1)

RANGE_HI_KEY : 각 Step에서 샘플링된 최대 값.

RANGE_ROWS : 각 Step에서 RANGE_HI_KEY값을 제외한 값의 개수.

EQ_ROWS : 최대값 개수.

DISTINCT_RANGE_ROWS : RANGE_ROWS 컬럼 값들중 중복되지 않는 값의 개수.


--인덱스 조각 모음 (*인덱스 다시 잡음, 시간걸림)


DBCC dbreindex ([TABLE NAME])


--모든 인덱스 다시 잡기 (*엄청난 시간 걸릴 수 있음. 주의!!!)


DBCC dbreindexall('[DB NAME]')


--인덱스 테이블 통계 업데이트


UPDATE STATISTICS [TABLE NAME]


참고 : https://docs.microsoft.com/ko-kr/sql/relational-databases/system-stored-procedures/sp-helpindex-transact-sql?view=sql-server-2017



반응형

댓글