abap中进行表关联的时候的效率分析!进行表关联的时候,使用join和for all entries in 时哪个效率高些,高手给个详细的解释吧!谢谢.能举个例子最好.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 21:08:19
abap中进行表关联的时候的效率分析!进行表关联的时候,使用join和for all entries in 时哪个效率高些,高手给个详细的解释吧!谢谢.能举个例子最好.

abap中进行表关联的时候的效率分析!进行表关联的时候,使用join和for all entries in 时哪个效率高些,高手给个详细的解释吧!谢谢.能举个例子最好.
abap中进行表关联的时候的效率分析!
进行表关联的时候,使用join和for all entries in 时哪个效率高些,高手给个详细的解释吧!谢谢.能举个例子最好.

abap中进行表关联的时候的效率分析!进行表关联的时候,使用join和for all entries in 时哪个效率高些,高手给个详细的解释吧!谢谢.能举个例子最好.
如果for all entries in 语句后面的内表中数据量比较少,强烈建议优先使用这个语句;但是如果该内表数据量非常大的话,使用for all entries in 是非常耗资源的,这时候建议使用inner join,使用inner join语句一次连接的表最好不要超过三个
还有一个方法就是定义一个RANG表,和SELECT-OPTIONS的使用方法相同:
eg.
如果SELECT语句像这样:
select * into it_makt from makt
for all entries in it_mara
where matnr = it_mara-matnr.
可以用如下方式做替换:
data rt_matnr type range of mara-matnr.
datya rw_matnr like line of rt_matnr.
loop at it_mara into wa_mara.
clear rw_matnr.
rw_matnr-sign = 'I'.
rw_matnr-option = 'EQ'.
rw-matnr-low = wa_mara-matnr.
append rw_matnr to rt_matnr.
endloop.
select * into it_makt from makt
where matnr in rt_matnr.