使用SSIS目标,使用提交大小为1的快速加载与不使用快速加载选项的插入有什么不同。
我理解使用快速加载将调用bulk insert命令,而第二个选项只是简单的insert。实际的问题是,是否有任何性能开销来执行最大提交大小等于1的大容量插入。
我们将非常感谢对每一种情况下所发生的事情的解释,以及从2008年开始,不同版本之间是否存在任何差异。
发布于 2016-03-30 23:15:06
通过批量插入技术的单例插入比普通的单例插入要慢得多。为了准备大容量插入,客户端API必须首先发送列元数据,描述后面的表格数据流,这是一个不需要普通插入的任务。当流多行数据时,性能的提高抵消了这一开销,但在传递单个行时则不然。有关TDS协议规范的详细信息,请参阅https://msdn.microsoft.com/en-us/library/dd304523.aspx。
几年前,我对insert性能进行了测试,发现使用SqlBulkCopy的单行批量插入性能平均为每秒500行,而插入为每秒1800行。对于100行批处理,批量插入平均超过10K/秒,而单线程单例插入则为3.5K。我希望与SSIS中常用的IRowsetFastLoad OLE DB接口有类似的区别。
https://dba.stackexchange.com/questions/133851
复制相似问题