ABAP 加入有10个表需要链接在一起,直接用inner join肯定是性能不好的,现在我如果分开,用两个三个表链

2024-11-27 23:07:14
推荐回答(2个)
回答1:

朋友,慎用inner join,这个语句的效率不是看链接数的多少,是看链接两端表的大小。
我上次用ekes mkpf mseg链接,单这个语句跑了30+分钟。如果你要链接的表不是系统里面的大表,可以考虑使用,否则请慎重,因为这个语句计算笛卡尔乘积,链接的表有多少记录全给乘起来计算访问次数的~实在不行就建十个内表,格式跟数据库表相同,先把数据全部拉到内表里面再进行计算匹配,这样就快很多,当然显得笨拙了,不过实用。inner join这种看似高端实则非常占内存的语句一定要慎重。。。

回答2:

最稳妥的办法就是把你的个个方案都实现一边,然后找接近实际的数据量进行测试,分别看一下各个所需的时间,然后决定采用哪种方法. 因为这个的性能直接跟你表内的数据数量有关. 但有个大多数时候都是用的准则,inner join的性能在大多数时候都比不上 FAE(for all entries).