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
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^