在我的包中,我有一个包含大约120000条记录的源表和一个没有缓存模式和目标表的查找转换。我将来自源的与target不匹配的数据传递到同一目标表。当我执行包我可以看到,一次只有9000条记录只移动到lookup.once它插入到目的地,其他9000条记录移动到查找并继续。这只有9000条记录的原因是什么?我试过改变defaultbuffermaxrows和defaultbuffersize分成不同的值,但9000记录只能一次移动。
答案 0 :(得分:3)
在OLEDB目的地,我们有一个属性ROWS PER BATCH
。您可以使用它来更改每批传输的行数。
在这里,你会看到9000条记录,因为默认的最大行数是10,000。
来自MSDN
通过设置定义任务使用的缓冲区的默认大小 DefaultBufferSize属性,并定义最大行数 在每个缓冲区中,通过设置DefaultBufferMaxRows属性。该 默认缓冲区大小为10兆字节,最大缓冲区大小为100 兆字节。默认的最大行数为10,000。
编辑(根据您的评论):
由于您已将cache
的{{1}}选项设为lookup
,因此无效。要插入/流动所需行或自定义行(>默认行),请按照以下说明进行操作。
no cache
设为cache mode
。Full cache
。OLEDB Connection manager
中设置OLEDB Destination
如上所述。ROWS PER BATCH
设置为您想要的行。工作正常。