在执行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表中时,就会发生这种情况。
如何解决?
发布于 2009-07-05 20:45:02
该消息告诉您SSIS正在使用20个缓冲区,每个缓冲区10Mb -总共大约200Mb。它的内存量不是很大,即使在1 1Gb的机器上也不会耗尽内存。
其他进程很可能会消耗剩余的内存-请检查任务管理器。通常是SQL Server消耗了所有内存-如果您在同一台计算机上运行SQL和SSIS,则限制允许SQL消耗的内存量(在SQL Server属性中),为SSIS留出一些内存-我建议至少保留0.5 to。
发布于 2009-07-05 20:57:13
您还应该查看所有日志消息。特别是,Lookup转换可以记录大量关于它们使用了多少内存的信息。你可以得到一些关于内存分配的非常详细的日志。
发布于 2016-06-21 15:52:35
我也面临着同样的问题。我的XML源代码大约是2MB。当我启动这个包时,它开始抛出这个OutOfMomory警告。我的服务器大约有8 8GB的内存。所以这不是内存问题。当前计算机SQL server服务占用的空间接近6 6GB。我可以从任务管理器中检查这个。因为我的SSIS包目标连接到差异数据库,所以我不希望当前的服务器SQL服务正在运行。因此,在我停止此SQL SERVER服务的那一刻,我的SSIS包就成功执行了。
https://stackoverflow.com/questions/1062928
复制相似问题