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