Sql-Server

刪除聚集索引和非聚集索引創建後會發生什麼

  • December 6, 2016

當我們在創建集群索引和非集群索引時刪除它們會發生什麼?

根據聚集索引,葉級別的數據會發生什麼?

來自 MSDN:

刪除聚集索引時,儲存在聚集索引的葉級別中的數據行將儲存在無序表(堆)中。刪除聚集索引可能需要一些時間,因為除了刪除聚集索引之外,還必須重建表上的所有非聚集索引,以將聚集索引鍵替換為指向堆的行指針。刪除表上的所有索引時,首先刪除非聚集索引,最後刪除聚集索引。這樣,不必重建索引。

https://technet.microsoft.com/en-us/library/ms190691(v=sql.105).aspx

至於非聚集索引下降,它們沒有刪除任何數據,它是元數據操作,索引頁面被簡單地釋放。想想 TRUNCATE 與 DELETE,TRUNCATE 只是釋放頁面,你就完成了。刪除一個非聚集索引是非常相似的,因此為什麼在你這樣做的時候刪除一個會很快(除非你被阻止了)。

引用自:https://dba.stackexchange.com/questions/157317