数据库插入会减慢表获得的大小

时间:2018-02-20 16:55:17

标签: sql-server performance

我遇到了数据库插入问题,导致表格越大越慢。我正在插入大约130万条记录,其中前100,000个以合理的速度插入,但随后插入逐渐变慢。

表开始为空,并且有三个外键和五个索引,我读过这些索引可能会导致速度变慢,每个插入都必须重新编制索引。我可以确认这是问题的可能原因吗?

无论如何,我可以通过在插入语句之后禁用索引并在最后再次执行(不删除索引)来改善性能损失吗?

是否有人有任何进一步的建议来改善表现。

我使用的是SQL Server,它位于我的第二个硬盘上。

1 个答案:

答案 0 :(得分:0)

这可能是很多问题。有关优化批量插入的MSDN建议,请参阅here。但是,我会尝试将批次限制为10,000或100,000行,看看情况如何。如果它有很大帮助,那么你应该花一些时间来确定最佳批量。由于

,我已经多次看到这是一个问题

a)事务日志如何增长,人们不了解它如何影响日志以及日志如何保持增长。

b)内存如何影响大量行的索引。来自批次here

的文章
  

SQL Server根据批处理自动优化负载   大小值,可能会带来更好的性能。一般来说,你   应该使批量大小尽可能大。通常,   批量大小越大,批量导入的性能越好   操作。但是,存在一些例外。如果有一个或多个索引   存在于目标表上,然后更大的批量大小可能会占用内存   分拣压力。

批量文章中还有其他一些注释,说明如何更改批量大小可以改善您的性能和原因,这些仅仅是几个例子(以及我最常见的例子)。