-1

我是 SSIS(集成服务)的新手。何时在 SSIS 中使用 Lookup & Merge join Transformations 我有点进退两难。

请不要告诉我它们之间的区别,我已经知道它们了。我想知道在哪些情况下我必须使用查找和合并连接。

4

1 回答 1

1

我能想到 MERGE JOIN 的唯一原因是当您有 2 个巨大的未排序数据源并且您无法将它们全部拉入内存以在管道中对它们进行排序时。

请探索互联网世界,您肯定会找到一些东西。

编辑

使用合并联接而不是查找

如果您需要在数据流中进行一次性联接(而不是多次查找),请考虑使用合并联接转换而不是查找转换。Jamie Thomson 有一篇很棒的文章比较了这两种方法,并证明使用 Merge Join 比使用 Lookup 更有效。这样做的主要原因是 Merge Join 采用流式方法,而不是花时间预先缓存其值。流逻辑在 SSIS 2012 中也得到了进一步改进——当一个源比另一个源快得多时,Merge Join 现在可以防止一个输入获得过多的缓冲区。

在考虑这种方法时,请记住以下几点:

两个输入都必须排序。理想情况下,这种排序可以推送到源查询中。如果数据尚未排序(即没有索引),排序的成本可能会超过这种方法的好处。源组件在读取其所有数据之前不会结束,因此如果您的传入数据的行数较少,并且您要加入更大的数据集(在这个特定客户的场景中就是这种情况) , Merge Join 方法并不理想。在这些类型的场景中,部分缓存查找往往效果最好。

礼貌:

  1. 微软网站
  2. 马特马森
于 2014-06-30T11:13:00.720 回答