본문 바로가기
RDB/MSSQL

[MSSQL] 사용하지 않는 인덱스 확인하기

by kigo23 2023. 4. 24.
반응형

다음 쿼리를 사용해 사용되지 않고 있는 인덱스를 확인할 수 있다.

인덱스를 사용하지 않는데 인덱스 수정이 자주되어 DB에 부하를 준다면 정리할 수 있도록 하자.

SELECT TOP 10
    DatabaseName = DB_NAME()
    ,TableName = OBJECT_NAME(s.[object_id])
    ,IndexName = i.name
    ,user_updates --유저 인덱스 쓰기 작업 수
    ,system_updates --시스템 인덱스 쓰기 작업 수
FROM sys.dm_db_index_usage_stats s
INNER JOIN sys.indexes i ON s.[object_id] = i.[object_id] AND s.index_id = i.index_id
WHERE s.database_id = DB_ID()
    AND OBJECTPROPERTY(s.[object_id], 'IsMsShipped') = 0
    AND user_seeks = 0
    AND user_scans = 0
    AND user_lookups = 0
    AND i.name IS NOT NULL
ORDER BY user_updates DESC