当我从表中删除列时,任何人都知道索引会发生什么变化?
SQL Server是否会重建该索引?如果它是聚集索引怎么办?
我有一个1.5亿行表,我需要删除一列。如果将它作为聚簇索引进行排序,这会重建该表吗?或者索引是否只是理解其中一个列被删除了?
答案 0 :(得分:0)
这不是索引可以“理解”的东西。如果在查询中使用索引中使用的所有列,则复合索引只能由查询引擎使用。它是一个多级索引,带索引索引(如果有意义的话)。索引定义中的列顺序构造了构建的物理索引。如果删除列,则必须删除此索引并构建一个新索引。
答案 1 :(得分:0)
这取决于专栏。如果该列在任何索引(聚簇或非聚簇)中用作索引列,则除非先删除受影响的索引,否则不能删除它。
如果该列未用作索引列,则可以将其删除,并且聚簇索引将不重建。但是,在重建聚簇索引之前,表的已用空间也不会更改。