SSIS - 输入到多个目标时的合并连接问题

时间:2017-04-17 21:12:04

标签: sql-server merge ssis etl bids

一个目的地 - 所有合并加入行

One Destination - All Merge Join Rows

两个目的地 - 更少的合并加入行

Two Destinations - Fewer Merge Join Rows

有人可以帮我解释一下这种行为吗?

我正在生成一个计数字段,然后使用合并连接将其反馈回主流,然后根据计数执行条件拆分。它在没有update语句的情况下工作正常,但是当我使用条件拆分的更新语句运行它时,我会得到不同的结果。也许还值得一提的是,数据中没有空值,两张图片也是同一个文件。任何想法都表示赞赏。感谢。

2 个答案:

答案 0 :(得分:1)

OLEDB command没有完成当前一批行的执行时,它的先前组件(condotionnal split)在完成处理之前不会发送更多行等等。此外,它取决于dataFlow DefaultBufferSizeDefaultBufferMaxRows

详细了解Data Flow Performance Features

答案 1 :(得分:0)

我想我会更新我学到的东西。看起来加载了多少行的问题(49430对52220)是由于SSIS中的DefaultMaxBuffer大小和DefaultMaxBuffer行设置造成的。这并没有提高性能,只是将多少记录加载到内存中。

正如Martin上面所说,处理更新的延迟是由于效率低下造成的。对于想知道临时表是什么的任何人来说......它只是您在数据库中创建的表的通用术语(或者使用sql命令任务在SSIS中创建表)然后在SSIS中使用sql命令来运行更新声明。如果需要,可以在更新后删除SSIS任务中的临时表。我不能低估这会给你带来大量更新的性能提升。