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

时间:2012-03-15 14:42:46

标签: c# c#-4.0 sqlbulkcopy

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

感谢。

1 个答案:

答案 0 :(得分:1)

根据MSDN: SqlBulkCopy.BatchSize -

  

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

     

可以随时设置BatchSize属性。如果是批量副本   已经在进行中,当前批次的大小根据   以前的批量大小。后续批次使用新大小。如果   BatchSize最初为零,并在WriteToServer时更改   操作已在进行中,该操作将数据加载为   单批。任何后续的WriteToServer操作都是一样的   SqlBulkCopy实例使用新的BatchSize。

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