将大量数据插入SQL Server 2005表

时间:2011-12-20 12:04:47

标签: sql sql-server-2005 tsql

我将大约200万条记录插入到SQL Server 2005表中。该表当前具有聚簇索引和非聚簇索引。我想提高该表中插入查询的性能。任何人都可以了解

5 个答案:

答案 0 :(得分:2)

  1. 删除所有索引(包括插入数据的主要索引) 没有预订相同的密钥)
  2. 插入数据
  3. 重新创建所有已删除的索引

答案 1 :(得分:1)

您可以尝试在插入之前禁用表上的索引,然后再次启用它们。如果要将大量数据插入表中,可能会节省大量时间。

查看有关如何执行此类操作的SQL Server的这篇文章:http://msdn.microsoft.com/en-us/library/ms177406.aspx

答案 2 :(得分:1)

如果没有充分的理由你没有使用批量插入,我会说你最好的选择就是这样做。即:选择行格式然后批量重新插入。

通过执行此数量的普通插入,您将对事务日志造成巨大压力。

如果批量插入不是一个选项,你可以通过将插入分成块来赢得一点点 - 这样你就不会逐行,但不要尝试插入并更新所有一举一动。

我自己也尝试了一下,但没有时间接近确定的答案。 (出于同样的原因,我已经开始提问Performance for RBAR vs. set-based processing with varying transactional sizes。)

答案 3 :(得分:0)

您应该删除索引,然后插入数据,然后重新创建索引。

答案 4 :(得分:-2)

您最多可以在一个插页中插入1000行。

values (a,b,c), (d,f,h)

通过插入主键对数据进行排序。

使用(保持锁定)