sql server是否删除了列重建索引?

时间:2012-09-29 00:25:18

标签: sql-server-2008 indexing

当我从表中删除列时,任何人都知道索引会发生什么变化?

SQL Server是否会重建该索引?如果它是聚集索引怎么办?

我有一个1.5亿行表,我需要删除一列。如果将它作为聚簇索引进行排序,这会重建该表吗?或者索引是否只是理解其中一个列被删除了?

2 个答案:

答案 0 :(得分:0)

这不是索引可以“理解”的东西。如果在查询中使用索引中使用的所有列,则复合索引只能由查询引擎使用。它是一个多级索引,带索引索引(如果有意义的话)。索引定义中的列顺序构造了构建的物理索引。如果删除列,则必须删除此索引并构建一个新索引。

答案 1 :(得分:0)

这取决于专栏。如果该列在任何索引(聚簇或非聚簇)中用作索引列,则除非先删除受影响的索引,否则不能删除它。

如果该列未用作索引列,则可以将其删除,并且聚簇索引将重建。但是,在重建聚簇索引之前,表的已用空间也不会更改。

修改:参考:http://msdn.microsoft.com/en-us/library/ms190273.aspx