sqlbulkcopy批量调整与datatable中的行数有关

c# c#-4.0 sqlbulkcopy

我需要确保每批都完整吗?即如果我有一个12028行的数据表,我可以使用10k的批量大小,它会自动创建2批,1个10k in和1个2028 in?

谢谢。

一般承认的答案

根据MSDN:SqlBulkCopy.BatchSize -

如果声明了SqlBulkCopy实例而没有生效的UseInternalTransaction选项,则会一次将行发送到服务器BatchSize行,但不会执行与事务相关的操作。如果UseInternalTransaction生效,则每批行都作为单独的事务插入。

可以随时设置BatchSize属性。如果批量复制已在进行中,则根据先前的批量大小调整当前批次的大小。后续批次使用新大小。如果BatchSize最初为零并且在WriteToServer操作正在进行时更改,则该操作将数据作为单个批处理加载。在同一SqlBulkCopy实例上的任何后续WriteToServer操作都使用新的BatchSize。

根据这些信息,我倾向于认为将批量大小设置为10k行并提供12k +,将创建多个批次。




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因