2013-04-30 84 views
1

我有一些SSIS包内的数据流,我试图最大化缓冲区。运行的机器具有16GB的RAM,并且没有其他任何东西(换句话说,内存不是问题)。SSIS缓冲区不改变

所以首先我设置了缓冲区的SSIS日志记录,然后将DefaultBufferSize设置为104857600(100MB)。然后我将DefaultBufferMaxRows设置为40000(我计算的东西)并运行包。 buffersizetuning事件说“缓冲区类型为0的行会导致缓冲区大小大于配置的最大值,在这种类型的缓冲区中只有20448行”。好吧,现在我知道有几列不需要,所以我删除它们。其中一些列是varchar(500),另外还有一些XML列。我再次运行这个包,我得到的消息是“缓冲区类型为0的行会导致缓冲区大小大于配置的最大值,在这种类型的缓冲区中只有20448行”。相同的确切数字!

所以我的问题是,为什么缓冲区似乎没有认识到有更少的数据被传递,因此更多的行应该是阿尔适合缓冲区?

回答

0

你的包在“RunInOptimizedMode”中运行吗?显然这会自动删除未使用的列。

尝试将此软件包属性swithc设置为false,然后运行您描述的两种方案。

0

尝试将该DataFlow任务的DefaultBufferSize从10485760增加到104857600,然后再次检查。我面临同样的问题,增加缓冲区大小解决问题+