-- 테이블 상태 조사
DBCC SHOWCONTIG ( [TABLE_NAME] );
-- 가장 조각이 많이 난 인덱스 조사
SELECT TOP(10)
DB_NAME() AS 'Database_Name',
OBJECT_NAME(SYS_DM.OBJECT_ID) AS 'Table_Name',
SYS_INDEX.NAME AS 'Index_Name',
ROUND(AVG_FRAGMENTATION_IN_PERCENT, 2) AS 'Fragmentation %'
FROM SYS.DM_DB_INDEX_PHYSICAL_STATS(DB_ID(), NULL, NULL, NULL, NULL) AS SYS_DM
INNER JOIN SYS.INDEXES AS SYS_INDEX
ON SYS_DM.OBJECT_ID = SYS_INDEX.OBJECT_ID AND SYS_DM.INDEX_ID = SYS_INDEX.INDEX_ID
WHERE SYS_DM.DATABASE_ID = DB_ID()
AND SYS_INDEX.NAME IS NOT NULL
AND OBJECTPROPERTY(SYS_DM.OBJECT_ID, 'IsMsShipped') = 0
ORDER BY [Fragmentation %] DESC;
인덱스 리빌드는 소요되는 시간과 리소스가 인덱스 재구성에 비해 크며,
일정 수준 이상의 조각화(약 30% 이상) 발생한 경우 인덱스 리빌드를 진행해야 인덱스 조각화를 해결.
참고 :
[SQL Server] 인덱스 재구성 vs 인덱스 리빌드 차이 한 눈에 이해하기 (tistory.com)
[MSSQL] 인덱스 리빌드 : 네이버 블로그 (naver.com)
꿈꾸는 개발자, DBA 커뮤니티 구루비 (gurubee.net)
'[ Programing ] > Database' 카테고리의 다른 글
MS-SQL UPDATE STATISTICS 통계 업데이트 (0) | 2021.05.27 |
---|---|
MS-SQL 인덱스 종류와 차이 설명 링크. (0) | 2021.05.27 |
MS-SQL 인덱스 조각 모음. (0) | 2021.05.27 |
MS-SQL Table Index 정리. (0) | 2021.05.27 |
MS-SQL 일일 수정. (0) | 2021.04.28 |