본문 바로가기

운영/압축

Alter Index Rebuild 진행률

728x90

환경

Microsoft SQL Server 2016 (SP2) 

Copyright (c) Microsoft Corporation  Enterprise Edition

설명

대용량 데이터베이스를 운영시에 alter index rebuild 구문을 이용하여 데이터 압축을 하는 경우가 발생을 합니다.

기존에는 sys.partitions에 Online Index를 생성하는 동안 rows를 확인하여 진행할 수 있었으나 MS SQL 2016 이상에서는 조회되지 않습니다.

그래서 아래의 방법으로 Alter Index에 대한 진행을 모니터링 하려고 합니다.

사전 설정

SET STATISTICS PROFILE ON

해당 세션에서

ALTER INDEX [인덱스이름] ON [테이블이름]
REBUILD WITH ( DATA_COMPRESSION = PAGE, ONLINE=ON, MAXDOP=8)

진행률 확인

SELECT   
       node_id,
       physical_operator_name, 
       SUM(row_count) row_count, 
       SUM(estimate_row_count) AS estimate_row_count,
       CAST(SUM(row_count)*100 AS float)/SUM(estimate_row_count) 
			as estimate_percent_complete
FROM sys.dm_exec_query_profiles   
WHERE session_id=<SPID>  
GROUP BY node_id,physical_operator_name  
ORDER BY node_id desc;

진행율 결과 예시

728x90