1. 程式人生 > >SQL Server 重新組織生成索引

SQL Server 重新組織生成索引

重新生成索引將會刪除並重新建立索引。這將根據指定的或現有的填充因子設定壓縮頁來刪除碎片、回收磁碟空間,然後對連續頁中的索引行重新排序。如果指定 ALL,將刪除表中的所有索引,然後在單個事務中重新生成。不必預先刪除 FOREIGN KEY 約束。重新生成具有 128 個區或更多區的索引時,資料庫引擎延遲實際的頁釋放及其關聯的鎖,直到事務提交。有關詳細資訊,請參閱刪除並重新生成大型物件。

重新生成或重新組織小索引不會減少碎片。小索引的頁面儲存在混合區中。混合區最多可由八個物件共享,因此在重新組織或重新生成小索引之後可能不會減少小索引中的碎片。

在早期版本的 SQL Server 中,您有時可以重新生成非聚集索引來更正由硬體故障導致的不一致。在 SQL Server 2008 中,您仍然可以通過離線重新生成非聚集索引來糾正索引和聚集索引之間的這種不一致。但是,您不能通過聯機重新生成索引來糾正非聚集索引的不一致,因為聯機重新生成機制將會使用現有的非聚集索引作為重新生成的基礎,因此仍存在不一致。相反,離線重新生成索引將會強制掃描聚集索引(或堆),因此會刪除不一致。與早期版本一樣,建議通過從備份還原受影響的資料來從不一致狀態進行恢復;但是,您可以通過離線重新生成非聚集索引來糾正索引的不一致。