2011. 12. 6. 05:05

모니터링::Index 생성 & Rebuild 진행 상황

SQL SERVER 2005 이상


Index를 생성하거나, Rebuild 작업시 sysprocess 에서  max_dop =  설정값 보다 하나 더 많은 row가 보이면서 완료되어 가면 그 수가 하나씩 줄어드는 것을 확인 할 수 있다.

이 수가 줄어드는 것으로 완료되는 진행 상황을 보았었는데..
sys.partitions에서 작업하는 index_id 값에 해당하는  row 수가  전체 table row 값과 동일할 때까지 증가하는 것을 볼 수 있다.
즉, 완료가 되면 전체 table row 수와 같아 진다.

SQL 2005 이상 부터 가능.

DECLARE @TABLE_NAME SYSNAME, @INDEX_ID INT
SET @TABLE_NAME = 
SET @INDEX_ID = 

-- REBUILD
SELECT A.*, B.ROWS, A.ROWS-B.ROWS AS DIFF_ROWS, B.ROWS*100.0/A.ROWS as '%'
FROM SYS.PARTITIONS A WITH(NOLOCK) JOIN SYS.PARTITIONS B WITH(NOLOCK) 
	ON A.OBJECT_ID=B.OBJECT_ID AND A.INDEX_ID=B.INDEX_ID 
	AND A.PARTITION_NUMBER=B.PARTITION_NUMBER AND A.ROWS<>B.ROWS
WHERE A.OBJECT_ID=OBJECT_ID(@TABLE_NAME)
	AND A.INDEX_ID= @INDEX_ID
	AND A.ROWS-B.ROWS>0
	

-- NEW
SELECT * FROM SYS.PARTITIONS WITH(NOLOCK) WHERE OBJECT_ID = OBJECT_ID(@TABLE_NAME)
SELECT * FROM SYS.SYSPROCESSES WITH(NOLOCK) WHERE SPID = 



'Monitoring' 카테고리의 다른 글

대랑 I/O 사용 세션 쿼리  (0) 2012.08.13
TEMPDB의 페이지 사용량 측정  (0) 2012.08.13
T-SQL:: Default Trace로 DB 증가량 확인  (1) 2011.04.15
Admin::Tempdb 의 작업, 모니터링  (0) 2011.01.30