我将大约200万条记录插入到SQL Server 2005表中。该表当前具有聚簇以及非聚簇索引。我想改善该表中插入查询的性能。任何人都可以有想法将大量数据插入到SQL Server 2005表中
回答
你可以尝试在插入之后禁用索引并在之后再次启用它们。如果您要将大量数据插入表中,它可能会是一个巨大的时间片。
看看这篇文章对如何做这样的事情对于SQL Server:http://msdn.microsoft.com/en-us/library/ms177406.aspx
- 删除所有索引(包括主,如果你对插入的数据 不使用相同的密钥预序)
- 插入数据
- 重新创建所有删除的索引
如果您在谈论SQL Server:我会建议**不要**放弃聚集索引!否则,在插入之前,表将转换为堆,然后在插入后返回到聚簇表中 - 这两者都是极其耗费时间和资源的操作... – 2011-12-20 12:11:43
是的,同意,但只有当表格中已经有大量数据时 – 2011-12-20 12:23:08
删除或禁用索引,然后再重新创建或重新构建索引会消耗更多时间。因为该表已经包含记录,我已经试过这个东西,但它不会使我受益 – 2011-12-20 12:45:27
如果您不使用批量插入没有很好的理由,我会说,你最好Ø要做到这一点。即:选择行格式,然后可以批量重新插入。
通过执行此数量的普通插入操作,您将对事务日志造成巨大压力。
如果批量插入不是一个选项,您可以通过将插入分割成块来赢得一点 - 这样您就不会逐行移动,但不要尝试插入并更新它所有的一举一举。
我已经尝试了一下自己,但还没有时间去接近最终的答案。 (出于同样的原因,我开始提问Performance for RBAR vs. set-based processing with varying transactional sizes)。
您可以在一个插入中最多插入1000行。
values (a,b,c), (d,f,h)
通过插入的主键对数据进行排序。
使用带(保持锁定)
你应该删除索引,然后插入数据,然后重新创建索引。
- 1. 如何将XML数据插入到表中的SQL Server 2005
- 2. 在SQL Server 2005中插入大量数据
- 3. SQL Server 2005 - 大容量插入问题
- 4. 批量插入到SQL Server 2005中
- 5. 插入到SQL Server 2005中
- 6. 批量插入到SQL Server 2005问题
- 7. 如何将61000个数据对象插入到sql server 2005中?
- 8. SQL Server将表中的数据插入到XML变量中
- 9. 在SQL Server 2005中批量插入?
- 10. 将大量数据从Oracle 10G导出到SQL Server 2005
- 11. 将Excel数据导入到现有的SQL Server 2005表中
- 12. 插入XML数据到SQL Server 2005表用vb.net windows窗体
- 13. 如何插入来自Excel工作表数据到SQL Server 2005
- 14. 将HTML数据插入到SQL Server中
- 15. 将数据插入到几个表 - 可能使用OUTPUT - SQL Server 2005中
- 16. SQL Server大容量插入
- 17. 如何将SQL Server 2005表导出到SQL Server Compact数据库
- 18. Python:批量插入数据到SQL Server
- 19. SQL Server 2005批量更新或插入
- 20. SQL Server 2005 - 批量插入失败
- 21. SQL Server 2005的批量插入
- 22. 大容量插入到SQL Server 2008 R2从XML RAW数据
- 23. 将XML导入到未导入的SQL Server 2005数据中
- 24. 将数据插入SQL Server表
- 25. 将大量数据插入到Redshift中
- 26. 将变量插入到SQL Server中
- 27. SQL Server 2005插入图像
- 28. 插入数据表内容到SQL Server
- 29. 如何使用node.js将数据批量插入到SQL Server中
- 30. 将记录批量插入到SQL Server数据库中
另外,你目前如何插入数据?你在使用批量插入吗?你使用INSERT语句吗?你一次插入一行还是一次插入多行? – 2011-12-20 12:09:01
@TobyAllen:我们确实知道这是作业吗? – 2011-12-20 12:31:51
我正在使用SQL Server 2005数据库系统。我没有使用批量插入我正在使用insert into table_name语句,并且当前一次插入多行。 – 2011-12-20 12:48:50