删除批量插入数据的索引

时间:2013-05-27 09:35:27

标签: sql sql-server clustered-index

我正在由Pinal Dave re this post找到这一行:

  

未编制索引的表适用于快速存储数据。很多时候,它是   最好从表中删除所有索引,然后执行大量INSERT   并在此之后恢复这些索引。

对于聚簇索引,这真的是一种有效的技术吗?我的意思是,再次重新创建所有这些索引不会是一个开销吗?我还读到,当使用聚簇索引时,记录的物理存储顺序与逻辑记录的顺序相同。那么当我们删除索引并在以后恢复时,这将如何影响记录的物理存储?

1 个答案:

答案 0 :(得分:1)

他是部分正确的。

没有聚簇索引的表(称为“堆”)对于批量加载的临时表非常有用。这些临时表不是您的最终表。例如,您加载的数据可能是您已有的数据,因此您只需要为最终表找到新的,已更改的和已删除的记录。

是的,重新创建聚簇索引是一个开销。删除后,数据将被分配到任何地方。重建后,它将重新排列磁盘上的数据。