對於初學者,我不是DBA,我正在重建索引。重建索引不會更改非聚簇索引的碎片百分比
我利用msdn中令人驚歎的TSQL腳本來根據dm_db_index_physical_stats返回的碎片百分比來改變索引,如果碎片百分比大於30,那麼做一個REBUILD或做一個REORGANIZE。
我發現的是,在第一次迭代中,有87個需要defrag的記錄。我運行了腳本,並且所有87個索引(非聚集的集羣&)都被重建或重新編制索引。當我從dm_db_index_physical_stats獲得統計信息時,仍然有27條記錄需要碎片整理,所有這些記錄都是非集羣索引。所有的聚集索引都是固定的。
無論我運行腳本來整理這些記錄多少次,我仍然會使用相同的索引進行掃描,其中大部分使用相同的碎片百分比。此後似乎沒有任何變化。
注意:在這些迭代過程中,我沒有執行任何插入/更新/刪除操作。仍然重建/重組沒有導致任何改變。
更多信息:在MSDN http://msdn.microsoft.com/en-us/library/ms188917.aspx
使用SQL 2008 腳本可用能否請你解釋爲什麼這些共有27條記錄非聚集索引沒有被改變/修改?
對此的任何幫助將不勝感激。
Nod
你可以用pelase提供輸出27的其中一個統計作爲例子嗎? – TomTom 2010-03-22 06:49:16
我粘貼了3次迭代的索引結果之一。 第一次迭代改變了碎片%有點,第二和第三次沒有影響。 指數= [IX_BatchNumber] 片段%由dm_db_index_physical_stats返回 迭代1 = 52.6315789473684 迭代2 = 41.1764705882353 迭代3 = 41.1764705882353 \t 還有其他indteresting實例中的第一個磁盤碎片整理之前,其中在破碎%值爲30並在旁邊跳到40,並永遠停留在那裏。但這隻發生了幾個記錄。謝謝。 – Noddy 2010-03-22 23:36:08