Sql-Server

離線索引重建——它是否也創建了一個全新的索引副本?

  • December 30, 2019

據我所知,在重建線上索引時,SQL Server 虛擬地創建一個索引,然後在最後將現有的舊索引與新創建的索引交換,最後刪除舊索引。

我想知道這些操作對於離線索引重建是否相同。SQL Server 會虛擬創建一個索引,然後將其與現有索引交換嗎?

考慮一下 Paul Randal 在他關於搜尋引擎問答 #19 的文章中所說的話:圍繞索引重建的誤解(分配、BULK_LOGGED 模式、鎖定)

索引重建(無論是線上還是離線,並且至少可以追溯到 7.0)將在刪除舊副本之前創建索引的新副本。

他在SQLskills SQL101: REBUILD vs. REORGANIZE中重申了這一點:

重建索引需要在刪除舊索引之前建立一個新索引…

最後,文件還在頁面重組和重建索引上討論了這一點:

重建索引會刪除並重新創建索引。

所以你的問題的答案是肯定的,當離線重建索引時會創建一個新索引並刪除舊索引(儘管它通常需要比線上版本操作更少的磁碟空間)。

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