-- 테이블 상태 조사
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)
[SQL Server] 인덱스 재구성 vs 인덱스 리빌드 차이 한 눈에 이해하기
안녕하세요. 이번 시간에는 SQL Server의 인덱스 재구성(Reorganize)과 리빌드(Rebuild)의 차이에 대해서 알아보도록 하겠습니다. 지난 포스팅에서 I/O의 단위가 되는 페이지에 새로운 데이터가 추가될
datalibrary.tistory.com
[MSSQL] 인덱스 리빌드 : 네이버 블로그 (naver.com)
[MSSQL] 인덱스 리빌드
1. 인덱스 리빌드 (1) 이유 조각화는 디스크상에 페이지들이 연속적으로 위치해 있지 않고 공간을 두고 떨...
blog.naver.com
꿈꾸는 개발자, DBA 커뮤니티 구루비 (gurubee.net)
인덱스 재구축(REBUILD) 및 병합(COALESCE)
재구축(Rebuild)이 필요한 상황 - 기존 인덱스를 다른 테이블스페이스로 이동해야 할 경우 - 인덱스가 삭제된 엔트리를 많이 포함하..
www.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 |