2

在我的包中,我有一个包含大约 120000 条记录的源表和一个没有缓存模式的查找转换和一个目标表。我将与目标不匹配的源中的数据传递到同一个目标表中。当我执行包时,我可以看到这一点,一次只有 9000 条记录只移动到查找。一旦它插入目标,其他 9000 条记录移动到查找并继续。这只有 9000 条记录的原因是什么?我尝试通过将 defaultbuffermaxrows 和 defaultbuffersize 更改为不同的值,但 9000 条记录一次只能移动。

4

1 回答 1

3

在 OLEDB 目的地,我们有一个属性ROWS PER BATCH。您可以使用它来更改每批传输的行数。

在这里,您看到 9000 条记录 movinf 导致默认最大行数为 10,000。

来自MSDN

通过设置 DefaultBufferSize 属性定义任务使用的缓冲区的默认大小,并通过设置 DefaultBufferMaxRows 属性定义每个缓冲区中的最大行数。默认缓冲区大小为 10 兆字节,最大缓冲区大小为 100 兆字节。默认的最大行数为 10,000。

编辑(根据您的评论):

它不起作用,因为您已将cache选项设置为lookupas no cache。要使其插入/流动所需的行或自定义行(> 默认行),请按照以下说明进行操作。

  • 在您的查找设置中,使cache modeto Full cache
  • 在查找使用OLEDB Connection manager.
  • OLEDB Destination设置ROWS PER BATCH如上所述。
  • 在 DataFlow 属性中,将 设置Default BufferMaxRow为您想要的行。

会正常工作。

于 2012-06-01T07:47:59.130 回答