SSIS进行数据抽取时遇到虚拟内存不足的情况

0
具体错误信息如下:
信息: 0x4004800C,位于 数据流任务, SSIS.Pipeline: 缓冲区管理器检测到系统的虚拟内存不足,但无法换出任何缓冲区。考虑了 0 个缓冲区,锁定了 0 个缓冲区。或者是因未安装足够的内存或其他进程正在使用内存,以致于没有足够的内存可供该管道使用;或者是锁定了过多的缓冲区。
求各位大神前来解答~
已邀请:
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-08-19 回答

麻烦把你的SSIS包发一个截图出来,我帮你分析一下

我先问几个以下问题:
首先,你这个内存不足的报错,是在一开始就报错还是包运行了一段时间后报错。一段时间的话多久报错。 你机器的内存是多少
其次,如果用了 过多的 阻塞控件是会导致出现这种问题的。比如 Aggregate, Sort 这种类型。 注意你使用控件的场合
0

一吻红鱼 - 医疗BI从业者 2015-08-19 回答

IS包及服务器信息如下:

3.png


4.png


2.png

报出虚拟内存不足是一开始就报出的,后来我停止调试,又重新运行,4万多行的数据,通过数据流来传输用了3个半小时。我重新设计IS包,不用数据流,改使用SQL语句insert,一分钟不到就完成了。数据流的源与目标数据库都在一个服务器上。很费解。
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-08-19 回答

32G的内存跑4W行数据就包内存错误,你这个截图里的内存怎么是满的。
包在跑之前有看过有多少内存可用吗?你的数据复杂吗? 有多少列?
一般情况下如果没修改dataflow的最大加载数的时候 5G内存够它用了。而且看你这个流程很简单 没有任何转换

我建议是在包跑之前就看看内存有多少,如果你这个32G的服务器还有别的应用再跑。那么SSIS跑的也时候如果发现内存不够用是会报错的
 
0

一吻红鱼 - 医疗BI从业者 2015-08-19 回答

内存满应该是昨天晚上跑IS包消耗的,还有很多其他这样的包在跑,而且都没有什么问题,只有这个现在是有问题的。
列并不多,只有8列。昨天我第二次跑这个这个的时候是先重启了SQL Server服务的,重启后内存占用只有5G,然后跑这个数据流就消耗了3个小时~
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-08-19 回答

看不明白哈                
0

一吻红鱼 - 医疗BI从业者 2015-08-19 回答

额。就是说这个情况应该不会是内存不足的问题出现的,为什么使用SQL语句控件insert就很快,使用数据流就会很慢哩~ 
应该是我的描述太有问题了~

要回复问题请先登录注册