[SQL]減少Rebuild Index及更新統計資料的時間

Rebuild Index 常常要花很多時間嗎 ?

今天看到「Reduce Time for SQL Server Index Rebuilds and Update Statistics」,所以就記錄下來。

在 Rebuild Table的 Index 時可以指定要使用的處理器數目,如下,

ALTER INDEX ALL ON [Your Table]
REBUILD WITH (MAXDOP=8); 
GO

 

所以可以測試,用多少的 處理器數目 速度是最快的。

 

那如果一個一個設定很麻煩的話,可以在執行 Rebuild Index 的Job中,先將 max degree of parallelism 的設定,改成執行效果最好的處理器數目,然後再執行 Rebuild Index 的Job,之後再把 處理數目改回來,如下,

--Step 1:設定MAXDOP的數量
sp_configure 'max degree of parallelism',8
GO
RECONFIGURE WITH OVERRIDE;
GO

--Step 2:重建DB的Index
ALTER INDEX ALL ON [Your Table] REBUILD  
GO

--最後再將 max degree of parallelism 的設定改回來。

 

再來就是關於 更新統計資料 的部份,因為前面已重建過 Index 後,就只需要針對 Column 來更新即可,如下,

update statistics [Your Table] with fullscan, COLUMNS 
GO

 

參考資料

Reduce Time for SQL Server Index Rebuilds and Update Statistics

設定平行索引作業

UPDATE STATISTICS

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^