我需要确保每个批次都是完全满的吗?例如,如果我有一个有12028行的数据表,我是否可以只使用10k的批处理大小,它会自动创建两个批处理,一个10k in,一个2028年in?
谢谢。
发布于 2012-03-15 22:58:52
根据MSDN: SqlBulkCopy.BatchSize的说法--
如果在未使用UseInternalTransaction选项的情况下声明SqlBulkCopy实例,则会一次将行发送到服务器BatchSize行,但不会执行与事务相关的操作。如果UseInternalTransaction生效,则将每批行作为单独的事务插入。
可以随时设置BatchSize属性。如果已在进行海量复制,则会根据以前的批处理大小调整当前批处理的大小。后续批处理将使用新大小。如果BatchSize最初为零,并且在WriteToServer操作已经在进行时发生了更改,则该操作会将数据作为单个批处理加载。同一SqlBulkCopy实例上的任何后续WriteToServer操作都将使用新的BatchSize。
基于这些信息,我倾向于认为,将批处理大小设置为10k行,并提供12k+,将创建多个批处理。
https://stackoverflow.com/questions/9722083
复制相似问题