-
인덱스 조각 상태 쿼리 MS-SQLDatabase 2020. 10. 22. 16:29728x90
아래 함수로 테이블의 인덱스 조각 상태를 알 수 있다.
--조회 DBCC SHOWCONTIG (tableName)
익스텐드 검색 조각화 상태가 30%를 넘어가면 인덱스의 재구성이 필요하다.
다음 쿼리를 이용하면 해당 테이블의 인덱스별 인덱스 상태를 알수 있다.
SELECT a.object_id, object_name(a.object_id) AS TableName, a.index_id, name AS IndedxName, avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats (DB_ID (N'dbName') , OBJECT_ID(N'tableName') , NULL , NULL , NULL) AS a INNER JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id
avg_fragmentation_in_percent 의 숫자가 클수록 조각이 많이 나서 인덱스의 효율이 떨어진다.
보통 20이 넘어가면 재구성을 해주도록 하자.
재구성을 하는 경우 DB의 서비스가 멈추게 되므로 조각모음을 해주는 경우가 빈번하다.
다음 함수는 인덱스 조각 모음을 하는 함수다.
DBCC INDEXDEFRAG(dbName, tableName, indexName)
자주 insert, update를 하는 테이블의 경우 인덱스가 조각 나는 경우가 많기 때문에
서비스를 멈추지 않고 조각모음을 일정간격을 두고 해주는 것이 인덱스의 효과를 유지 할 수 있다.
728x90반응형'Database' 카테고리의 다른 글
오라클 vs MS SQL 함수 비교 (0) 2020.10.30 MSSQL 튜닝 기초 (0) 2020.10.30 MSSQL 특정문자열을 사용하는 SP,VIEW,Function,Trigger 찾기 (0) 2020.10.29 MSSQL 세션 정보 확인 (0) 2020.10.26 N:N 데이터 관계 모델링 (0) 2020.10.21