ADO.NET 和 SQLBULKCOPY - 插入的最大记录限制?

4
ADO.net每次向数据库中插入的记录数量是否有限制?我们想使用sqlbulkcopy,但开发人员告诉我们ADO一次最多只能插入1000条记录,所以sqlbulkcopy一次插入10000条记录是无用的。这是真的吗?Sqlbulkcopy会一次性插入大批量1000条记录,直到10000条吗? 我认为ADO没有最大记录数限制,但他们是开发人员,我不确定。

谁会想到一个批量插入的API在1k行时就达到了极限! - usr
你应该测试哪个BatchSize最适合你。我记不清楚了,但是当我需要将60-180k条记录导入数据库时,我必须平衡我的Web服务器的速度和处理器负载。找到正确的BatchSize,它将为你提供最佳的性能与CPU负载比率。 - Piotr Perak
2个回答

2
这不是真的。事实上,如果您想要批处理,则必须设置BatchSize属性,因为默认值为0,即没有限制。
此外,在查看SqlBulkCopy类的WriteToServerInternal方法后,这是唯一会限制单个批次发送的行数的东西。
最后,即使您将它们分批发送1,000行,也没有插入的总行数限制。除非是通过例如DataTable之类的方式在运行机器的内存中完成,否则没有任何形式的整体限制,但如果该数据通过SqlDataReader从一个服务器复制到另一个服务器,则没有任何限制。

0
BULKCOPY.BATCHSIZE=1000;

这将帮助您解决批量复制错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接