2012-09-29 72 views
1

任何人都知道当我从表中删除一列时索引会发生什么?sql server删除列重建索引?

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

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

回答

0

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

0

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

如果该列未被用作索引列,则可以删除它并且聚簇索引将被重建而不是。但是,在重建聚簇索引之前,表的已用空间也不会更改。编号:参考:http://msdn.microsoft.com/en-us/library/ms190273.aspx