SSIS:Merge vs Union All

时间:2016-03-22 07:14:47

标签: ssis merge union-all

免责声明:我正在学习SSIS - 请原谅我,如果这是一个明显的答案,但我找不到任何关于搜索的内容。

似乎合并转换非常类似于 Union All 转换,但有以下不同之处:

  1. 合并只能合并2个数据来源,而Union All支持更多数据(我不知道有多少 - 我的导师说有256个,但没有任何来源可以确认 - 而且MSDN没有'提一个上限)。
  2. 合并需要对输入进行排序,而Union All则不需要。
  3. 除了这些差异之外,似乎没有其他不同之处。它们都是部分阻挡,从我的有限测试来看,我也看不出任何明显的性能差异。

    我搜索的所有地方,我都发现建议使用"合并"只要有可能,并使用" Union All"如果有超过2个数据源,或源数据未排序。

    我的问题是,为什么?为什么我不只是到处使用Union All ?合并有什么意义?

    再一次,我很抱歉,如果这是一个非常基本/新手的问题,但我的导师不知道答案,而且搜索也没有成果。< / em>的

    谢谢!

    注意: 看来(从其他一些SO回答中,人们正在混淆&#34;合并&#34;与#34;合并加入&#34;。这些是两个不同的事情。

1 个答案:

答案 0 :(得分:9)

好的,所以事后回答很明显。似乎关键的区别在于输出。

  • 合并:输出已排序
  • 全部联盟:输出未排序

我们的想法是,如果我们对输入数据进行了排序,那么为什么不在我们的&#34; Merge&#34; /&#34; Union All&#34;之后对其进行排序。谁知道,我们可能需要将排序数据作为另一个转换中的输入,所以只需使用&#34; Merge&#34;如果可能,以便数据保持排序。

有趣的是,互联网上的很多文章都没有提到这个简单的区别。希望这有助于另一位新手上SSIS掌握!