Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSIS-输入到多个目标时合并加入问题_Sql Server_Merge_Ssis_Etl_Bids - Fatal编程技术网

Sql server SSIS-输入到多个目标时合并加入问题

Sql server SSIS-输入到多个目标时合并加入问题,sql-server,merge,ssis,etl,bids,Sql Server,Merge,Ssis,Etl,Bids,一个目标-所有合并连接行 两个目标-更少的合并连接行 有人能为我解释一下这种行为吗 我正在生成一个count字段,然后使用merge join将其返回到主流中,然后基于该计数执行条件拆分。没有update语句,它可以正常工作,但是当我使用条件拆分中的update语句运行它时,会得到不同的结果。也许还值得一提的是,数据中没有空值。两张图片也是同一个文件。任何想法都很感激。谢谢。当OLEDB命令未完成当前批行的执行时,它的前一个组件(Condoctional split)将不会发送更多行,直到他

一个目标-所有合并连接行

两个目标-更少的合并连接行

有人能为我解释一下这种行为吗


我正在生成一个count字段,然后使用merge join将其返回到主流中,然后基于该计数执行条件拆分。没有update语句,它可以正常工作,但是当我使用条件拆分中的update语句运行它时,会得到不同的结果。也许还值得一提的是,数据中没有空值。两张图片也是同一个文件。任何想法都很感激。谢谢。

当OLEDB命令未完成当前批行的执行时,它的前一个组件(Condoctional split)将不会发送更多行,直到他完成处理,依此类推。它还取决于数据流
DefaultBufferSize
DefaultBufferMaxRows


阅读更多关于

的内容,我想我应该更新我学到的东西。似乎加载了多少行(49430对52220)的问题是由于SSI中的DefaultMaxBuffer大小和DefaultMaxBuffer行设置造成的。这并没有提高性能,只是提高了加载到内存中的记录数


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

我们应该关注行数吗?在一张图片中,程序包已完成,而在另一张图片中,程序包仍在运行。是的,我不知道为什么程序包会少处理2188行。在第二张图片中,程序包会像那样卡住。。可能正在运行,但我不明白为什么更新8000行需要如此多的处理。最后通过OLEDB命令运行至少8977个单独的更新事务,这需要时间。插入到临时表中,然后执行基于集合的更新通常会更快。