SSIS包执行-内存不足问题!

SSIS包执行-内存不足问题!,ssis,Ssis,在执行SSIS包时,我遇到以下错误 缓冲区管理器对10484608字节的内存分配调用失败,但无法交换任何缓冲区以释放内存压力。考虑了20个缓冲区,并锁定了20个缓冲区。可能是由于安装的内存不足、其他进程正在使用内存或缓冲区过多而导致管道可用内存不足。 [DTS.Pipeline]错误:线程“SourceThread0”已退出,错误代码为0xC0047038。 [DTS.Pipeline]错误:数据流任务无法创建一个缓冲区来调用组件“GeneralConfigurations”(98)上输出“XM

在执行SSIS包时,我遇到以下错误

缓冲区管理器对10484608字节的内存分配调用失败,但无法交换任何缓冲区以释放内存压力。考虑了20个缓冲区,并锁定了20个缓冲区。可能是由于安装的内存不足、其他进程正在使用内存或缓冲区过多而导致管道可用内存不足。

[DTS.Pipeline]错误:线程“SourceThread0”已退出,错误代码为0xC0047038。

[DTS.Pipeline]错误:数据流任务无法创建一个缓冲区来调用组件“GeneralConfigurations”(98)上输出“XML源1”(91)的PrimeOutput。此错误通常是由于内存不足造成的。

当尝试从带有“脚本组件”的XML文件向SQL表插入数据时,会发生这种情况


如何解决这个问题?

消息告诉您SSI正在使用20个缓冲区,每个缓冲区10Mb—总共大约200Mb。 它的内存量不是很大,即使在1Gb的机器上也不会耗尽内存


其他进程很可能会占用剩余内存—请检查任务管理器。通常是SQL Server消耗所有内存—如果在同一台计算机上运行SQL和SSI,请限制SQL允许消耗的内存量(在SQL Server属性中),为SSI保留一些内存—我建议至少保留0.5Gb。

您还应该查看所有日志消息。特别是,查找转换可以记录有关它们使用了多少内存的大量信息。您可以获得一些关于内存分配的非常详细的日志。

我也遇到了同样的问题。我的XML源大约有2MB。当我启动这个软件包时,它开始抛出这个OutOfMomory警告。我的服务器大约有8GB内存。所以这不是内存问题。当前计算机SQL server服务占用了接近6GB的空间。我可以从任务管理器那里检查一下。由于我的SSIS包目标正在连接到差异数据库,我不希望当前的服务器SQL服务正在运行。因此,在我停止此SQL SERVER服务的那一刻,我的SSIS包就成功执行了。

@Chris Pickford

您要使用PerfMon计数器: 记忆\ 可用字节/兆字节 忠诚的伯特斯 SQLServer:SSIS管道\ 缓冲存储器 正在使用的缓冲区 假脱机缓冲区


此外,如果您已经登录到软件包中,请查看event User:BufferSizeTuning

这些代码是用于谷歌搜索的,没有人能立即识别它们。此外,在发生错误之前,SSIS日志条目是什么?发生了什么样的任务/步骤?您是否在visual studio中运行此程序包?谢谢您的回答。这正好帮助我们解决了一个类似的问题您能推荐从哪里开始查找这些内存分配日志吗?