执行SQL任务的结果集的大小是否有限制。如果是,那么如何处理结果集的多余部分?
我为什么这么问?我打算通过执行SQL任务(PREFERRED)将4-5 GB大小的记录设置到内存中,用它来生成sql语句。然后将使用这些sql语句将数据加载到目标表中。
答案 0 :(得分:1)
正如@RBarry Young所说,你的执行SQL任务转储结果只会受到机器上/可用于SSIS的内存量的限制。
当数据流中的内存不足时,会发生什么?SSIS将使用BufferTempStoragePath中指定的位置将数据写入磁盘和性能槽。 What is the actual use of buffer temp and blob temp in ssis
我没有在控制流中看到模拟,这是有道理的,因为通常它不是代码的内存密集型部分。测试并找出答案。如果你的内存不足而且SSIS不堪重负,那么你可能需要将你的逻辑转移到一个脚本任务中,然后尝试有效地管理你的内存,而不是立即保存整个集合。
那就是说,我几乎认为你正在努力构建自己的插入语句。这类似于编写自己的数据流,但可能不如SSIS所做的那样有效。