2009-10-29 16 views
2

我知道索引應自動更新,但如果沒有發生,我們需要重新索引。何時以及爲何重新索引MSDE數據庫

我的問題是(1)爲什麼這個自動更新失敗或爲什麼索引變壞? (2)我如何在某個時間點知道哪個表/索引需要重新索引?

回答

2

索引'統計可能會自動更新。我不相信索引本身會在需要時自動重建(儘管可能有一些管理功能允許這樣的事情發生)。

的是接受了很大的變化(新行,更新的行和刪除的行)的表相關的指標可能有他們的索引即成爲支離破碎,且效率較低。重建索引然後在連續的存儲空間部分「重新打包」索引,有點類似於文件系統碎片整理使文件訪問更快的方式...

此外,索引(在幾個DBMS上)有一個FILL_FACTOR參數,它決定每個節點應該留出多少額外空間用於增長。例如,如果您預計某個表格明年增長20%,通過宣佈填充因子爲80%左右,則指數在第一年內的碎片量應該很小(如果這20%的增長可能會有一些不均勻分佈,..)

在SQL Server中,可以查詢指示其碎片級別的索引的屬性,因此可能需要維護。這可以通過交互式管理控制檯完成。這也是可能做到這一點編程,通過sys.dm_db_index_physical_stats在MSSQL 2005及以上(也許甚至更舊的版本?)

相關問題