我是SSIS的新手(整合服务)。在使用Lookup&amp ;;时,我有点陷入困境在SSIS中合并连接转换。
请不要告诉我他们之间的差异,我已经知道了。我想知道在哪些情况下我必须使用Lookup&合并加入。
答案 0 :(得分:1)
我可以想到使用MERGE JOIN的唯一原因是当你有2个巨大的未排序数据源时,你无法将它们全部拉入内存以在管道中对它们进行排序。
请探索互联网世界,你肯定会找到一些东西..
修改强>
使用合并加入而不是查找
如果需要在数据流中进行一次性连接(而不是多次查找),请考虑使用合并连接变换而不是查找变换。 Jamie Thomson有一个很好的帖子,比较了这两种方法,并证明使用Merge Join比使用Lookup更有效率。主要原因是Merge Join采用流式处理方法,而不是花时间预先缓存其值。流式逻辑在SSIS 2012中也得到了进一步改进 - Merge Join现在可以防止一个输入在一个源比另一个源快得多的情况下获得太多缓冲区。
在考虑这种方法时,请记住以下事项:
必须对两个输入进行排序。理想情况下,此类可以推送到源查询中。如果数据尚未排序(即没有索引),则排序成本可能超过此方法的好处。 源组件在读取其所有数据之前不会结束,因此如果传入的数据行数较少,并且您正在加入更大的数据集(在此特定客户的情况下就是这种情况) ,合并加入方法并不理想。部分缓存查找在这些类型的场景中往往效果最佳。
礼貌: