日期:2014-05-18  浏览次数:20379 次

高手请多多指教
分配 104856000 个字节时某个缓冲区失败。
系统报告了百分之 53 的内存负载。物理内存为 2951782400 个字节,其中有 1379749888 个可用字节。虚拟内存为 2147352576 个字节,其中有 1207492608 个可用字节。分页文件为 4936433664 个字节,其中有 3180146688 个可用字节。
数据流任务创建缓冲区失败,因而无法通过对组件“Flat File Source Output”(4973)调用 PrimeOutput 来获得输出“Flat File Source”(4972)。此错误通常是由于内存不足造成的。

这个是我在用C#调用SSIS导入包时遇到的问题,有多个进程对多个导入包(每个进程调用一个导入包)进行调用时遇到的情况。这里我设置导入包的数据流的缓冲区(DefaultBufferSize)为最大值104856000,也就100M左右的大小。我的内存3G还有1G可用,不存在内存不足的原因,还有该程序的内存使用也在1.4G左右,没有高于2G进程空间的上限呀,但为什么会导致分配缓冲区失败呢?这不是个偶然的问题,一直都会发生的情况。
请多多给些意见,谢谢。。。

------解决方案--------------------
查了一下,这个参数最大100MB喔,即使修改了.

DefaultBufferSize – a DFT (Data Flow Task) property which specifies maximum size for an individual buffer in bytes. By default its value is 10,485,760 bytes (10 MB). As this setting is configured consider that its upper bound is constrained by an internal SSIS parameter called MaxBufferSize which is set to 100 MB and cannot be changed.

MaxBufferSize – a SSIS internal parameter which cannot be changed, it dictates upper limit for the DefaultBufferSize property of DFT as discussed above. Its value is 100 MB.