【问题标题】:SSIS Buffer not changingSSIS 缓冲区没有改变
【发布时间】:2017-08-28 18:45:06
【问题描述】:

我在 SSIS 包中有一些数据流,我正在尝试最大化缓冲区。运行它的机器有 16GB 的 RAM,并且什么都不做(换句话说,内存不是问题)。

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

所以我的问题是,为什么缓冲区似乎没有意识到传递的数据较少,因此应该有更多的行可以放入缓冲区?

【问题讨论】:

    标签: sql-server ssis buffer


    【解决方案1】:

    您的包是否在“RunInOptimizedMode”下运行?显然这会自动删除未使用的列。

    尝试将此包属性设置为 false,然后运行您描述的两个场景。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-11
        • 1970-01-01
        相关资源
        最近更新 更多