中易网

SSIS中 merge join与lookup 哪个性能更好些

答案:2  悬赏:50  
解决时间 2021-03-14 11:59
SSIS中 merge join与lookup 哪个性能更好些
最佳答案
首先Merge Join 要求你的 200W 和 1亿条的查询数据都必须在 JOIN 之前排序,这个排序的过程对性能上也是有很大影响的。一般的情况下,我可能会先考虑使用 Lookup,一是不需要考虑排序的问题,二是可以利用上缓存。但是这个不是绝对的,考虑到你的目标表有1亿条左右,Lookup 缓存是否足够使用也和你本身的服务器配置相关,内存过于紧张,性能可能还不如 Merge Join。所以关于何时选择 Merge Join 还是 Lookup 因环境而异,没有绝对的结论。

给你一个参考,我以前做过一个 1500W目标表,源10W的测试结果,表字段大约100多列,源查询的时候并非直接取表的值,而是需要做一些转换。在本机测试 8G虚机情况下,使用 Lookup 和 Merge Join 的时间都很慢,都是以小时计。但是在 16G的 测试服务器上(和真实产品服务器的配置是一样的) Lookup 的时间要远远优于 Merge Join 的时间。但是就可以明显的看出来,在不同的环境下,结论完全是不一样的。

最好的方式,就是在同一环境下,单用户的访问下,按照实际数据量依次尝试这几种方式:Lookup,Merge Join 和 SQL Server 中的 Merge,并记录比较实际的执行时间,这样的结论往往会比较准确些。但同时也要考虑到并行和串行的环境下,对内存争夺也会影响实际测试结果。

这几个控制本身的配置不会花费很多时间,所以完全可以尝试一下。
全部回答
三个阶段的主要区别在与所使用的内存、对不匹配记录的处理以及对输入数据的要求不同。 join stage:多个输入链接,一个输出链接。会对输入数据进行按键分区,确保相同键值的记录位于同一分区并用同一节点进行处理,故每次只取较少行,所需内存小。对于不匹配记录按照链接方式的不同而有所差异。 merge stage:多个输入链接,其中一个表示主数据集,其余表示更新数据集,一个输出链接和多个reject链接。可在链接顺序中指定更新链接与reject链接的对应关系。会对输入数据进行按键分区,确保相同键值的记录位于同一分区并用同一节点进行处理,故每次只取较少行,所需内存小。对不匹配记录会放入reject指定的数据输出中。要求主数据集与更新数据集均无重复值。 lookup stage:一个主链接,一个或多个引用链接,一个输出链接,一个reject链接。查找操作基于引用表的查找键列。查找键列在lookup中定义。查找数据与引用数据会全部读入内存,故需内存较大。无需对数据排序,但是应注意查找表的分区方式,与引用表相同或者采用全部分区方式。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我在安庆上学,家在淮南,购买淮南至西安的火
临春河路/潮见桥(路口)地址有知道的么?有点
win7系统的 网络 里查看xp系统的工作组计算机
有什么软件是可以模仿各种明星的吗?
地球上海洋和陆地的面积比例是多少
四川农大高科农业有限责任公司这个地址在什么
word2007怎样固定背景颜色 字号等,我的意思
已知向量a=(sinx,1),向量b=(1,cosx)
卵巢癌能吃带鱼吗
第1时尚这个地址在什么地方,我要处理点事
西安汽车科技职业学院怎么样?
我18岁了喜欢上一个男的比我大7岁,(没人知道
我今年高二,邻近学考,成绩的话在班上属于中
太空谷在哪里啊,我有事要去这个地方
你如何理解题目,无言的父爱的????
推荐资讯
hr绿宝瓶面霜效果怎样?用过的姐妹分享下!!
2011年河北师范大学的专科分数线是多少?413
刚吃完午饭,能不能坐下休息?
可锻铸铁和球墨铸铁谁更好
越狱后查找我的朋友自动卸载
苹果充电器的充电头通用吗?我拿来插psp的线
covonty 是什么牌子啊 达人们告诉我下吧
学校广播站要招新 求3分钟的自我介绍 求自己
三百万划到户头多久时间能到账
一个圆柱,已知高增加1厘米,它的侧面积就增
做个调查:都有谁在微商买过护肤品的,如果让
笔记本开机屏幕发红,还有拖影,但外接显示器
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?