2012-09-29 105 views
1

任何人都知道當我從表中刪除一列時索引會發生什麼?sql server刪除列重建索引?

SQL Server是否重建該索引?如果它是一個聚集索引呢?

我有一個1.5億行表,我需要刪除一列。如果將它作爲聚簇索引進行排序,這會重建表嗎?或者索引是否明白其中的一列已被刪除?

回答

0

這不是索引可以「理解」的東西。如果在查詢中使用了索引中使用的所有列,則只能由查詢引擎使用組合索引。這是一個多級索引,索引指向索引(如果有意義的話)。索引定義結構中的列順序是構建的物理索引。如果刪除該列,則必須刪除此索引並構建一個新索引。

0

它取決於列。如果該列在任何索引(羣集或非羣集)中用作索引列,則除非首先刪除受影響的索引,否則不能刪除它。

如果該列未被用作索引列,則可以刪除它並且聚簇索引將被重建而不是。但是,在重建聚簇索引之前,表的已用空間也不會更改。編號:參考:http://msdn.microsoft.com/en-us/library/ms190273.aspx