我有一个PK约束 - 两列上的聚簇索引 - 我正在删除它。该命令在一小时后仍在运行。我原以为,因为我只是删除一个约束,操作几乎是瞬间完成的。 有人可以向我解释当我放弃PK时实际发生的事情吗?
答案 0 :(得分:9)
聚簇索引不是“只是一个约束”,它是一种存储方法。
当您删除它时,您的数据将从群集存储重新排序到堆存储
正在更新其他索引以引用RID
而不是PRIMARY KEY
值。
答案 1 :(得分:1)
聚集索引是数据,可以解释它运行的时间。
答案 2 :(得分:0)
“CLUSTERED”索引将在硬盘上按顺序实际写入您的表记录。因此,删除或更改该索引可能会导致SQL Server基本上“整理”(重新排序)您的硬盘驱动器(好吧,至少是该表的数据所在的部分)。
请注意,这个答案并不是完全技术性的......但是它的意思是给你“哦,那就是发生了什么”的答案,这通常远远不够好。