我是否需要确保每批都已满?即如果我有一个12028行的数据表,我可以使用10k的批量大小,它会自动创建2批,1个10k in和1个2028 in?
感谢。
答案 0 :(得分:1)
根据MSDN: SqlBulkCopy.BatchSize -
如果声明了SqlBulkCopy实例而没有 有效的UseInternalTransaction选项,行被发送到服务器 BatchSize一次一行,但不执行与事务相关的操作。 如果UseInternalTransaction生效,则插入每批行 作为单独的交易。
可以随时设置BatchSize属性。如果是批量副本 已经在进行中,当前批次的大小根据 以前的批量大小。后续批次使用新大小。如果 BatchSize最初为零,并在WriteToServer时更改 操作已在进行中,该操作将数据加载为 单批。任何后续的WriteToServer操作都是一样的 SqlBulkCopy实例使用新的BatchSize。
根据这些信息,我倾向于认为将批量大小设置为10k行并提供12k +,将创建多个批次。