SSIS包的执行 - 非内存不足的问题!(SSIS package execute - Out-of

2019-09-17 06:52发布

当执行SSIS包,我得到了下面的错误,

The buffer manager failed a memory allocation call for 10484608 bytes, but was unable to swap out any buffers to relieve memory pressure. 20 buffers were considered and 20 were locked. Either not enough memory is available to the pipeline because not enough are installed, other processes were using it, or too many buffers are locked.

[DTS.Pipeline] Error: Thread "SourceThread0" has exited with error code 0xC0047038.

[DTS.Pipeline] Error: The Data Flow task failed to create a buffer to call PrimeOutput for output "XML Source 1" (91) on component "GeneralCongfigurations" (98). This error usually occurs due to an out-of-memory condition.

从“脚本组件”的XML文件,试图SQL表插入数据时,它发生。

如何解决呢?

Answer 1:

该消息告诉您SSIS使用20个缓冲区,为10Mb每个 - 约200MB在一起。 这不是内存非常大的量,即使是在1Gb的机器,你就不会耗尽内存。

这可能是其他进程占用内存的其余部分 - 检查任务管理器。 通常,它是SQL Server的谁占用了所有的内存 - 如果你运行同一台机器上的SQL和SSIS,限制内存SQL量允许消耗(在SQL Server属性),留下一些记忆SSIS - 我至少会建议保留0.5GB。



Answer 2:

你也应该看看所有的日志信息。 尤其是,查找转换可以登录有关他们正在使用多少内存大量的信息。 您可以获取有关内存分配的一些非常详细的日志。



Answer 3:

我面临着同样的问题。 我的XML源的周围2MB。 当我开始包装它开始抛出这个OutOfMomory警告。 我的服务器大约有8GB的内存。 所以这是不是内存问题。 目前该机SQL Server服务正在采取接近6GB的空间。 我可以从任务管理器检查。 正如我的SSIS包的目的地是连接到数据库的区别我不想运行当前的服务器SQL服务。 因此,我停止该SQL Server服务的那一刻,我的SSIS包成功执行。



Answer 4:

@克里斯·皮克福德

你想使用性能计数器:内存\速效字节/ MB的承诺Byrtes的SQLServer:SSIS管道\缓冲存储器缓冲区缓存器在使用假脱机

此外,如果你有登录你的包,看事件用户:BufferSizeTuning



文章来源: SSIS package execute - Out-of-memory issue!
标签: ssis