【发布时间】:2013-01-30 00:00:19
【问题描述】:
我必须将数据从数据表传输到数据库。总记录约为每次 15k。 我想减少数据插入的时间。我应该使用 SqlBulk 吗?还是别的什么?
【问题讨论】:
标签: c# sql-server
我必须将数据从数据表传输到数据库。总记录约为每次 15k。 我想减少数据插入的时间。我应该使用 SqlBulk 吗?还是别的什么?
【问题讨论】:
标签: c# sql-server
如果您使用C#,请查看SqlBulkCopy 类。 CodeProject上有一个good article关于如何与DataTable一起使用
【讨论】:
如果您只追求速度,那么批量复制可能适合您。根据要求,您还可以降低日志记录级别。
How to copy a huge table data into another table in SQL Server
【讨论】:
对于这种样本大小,SQL 批量复制无疑是最快的,因为它流式传输数据,而不是实际使用常规 sql 命令。这使它的启动时间稍长,但一次有超过 120 行(根据我的测试)
如果您想了解有关 sql 批量复制如何与其他几种方法叠加的统计信息,请查看我的帖子,了解如何到达此处。
http://blog.staticvoid.co.nz/2012/8/17/mssql_and_large_insert_statements
【讨论】:
15k 条记录实际上并没有那么多。我有一台配备 i5 CPU 和 4GB 内存的笔记本电脑,它可以在几秒钟内插入 15k 条记录。我真的不会花太多时间来寻找理想的解决方案。
【讨论】: