2013-06-24 90 views
0

我正在嘗試創建代理作業,該作業重新構建了連接到Deltek 6.1接口的SQL 2008 R2數據庫的索引。SQL索引重建:索引碎片百分比增加?

運行:

exec sp_msforeachtable 'DBCC DBREINDEX("?"," ",0)' 

注意到,一些指標實際上是越來越顯着比較零散。這可能是由於索引間距?我們通過各種不同的重建方式在我們的測試和生產網絡上實現了這一點。表格通常很大,我們在運行重建之後更新統計信息。

回答

0

腳本重建所有表索引在SQL Server:

USE DatabaseName --Enter the name of the database you want to reindex 

DECLARE @TableName varchar(255) 

DECLARE TableCursor CURSOR FOR 

SELECT table_name FROM information_schema.tables 

WHERE table_type = 'base table' 

OPEN TableCursor 

FETCH NEXT FROM TableCursor INTO @TableName 

WHILE @@FETCH_STATUS = 0 

BEGIN 

DBCC DBREINDEX(@TableName,' ',90) 

FETCH NEXT FROM TableCursor INTO @TableName 

END 

CLOSE TableCursor 

DEALLOCATE TableCursor 
+0

我們已經在做同樣的事情,該查詢,我們只是使用已有的填充因子,而不是定義一個新的。 我們遇到的問題是,在運行重建/重組腳本之後,平均百分比碎片率變得越來越差。 – fortysixty

+0

數據庫的大小是多少?如果您有足夠的空間來解決問題,那麼您至少需要10%的可用空間才能實現成功的碎片整理。 – MineScript

+0

數據庫的大小大約爲60GB,擁有15.5GB的可用空間 – fortysixty