abap中进行表关联的时候的效率分析!
进行表关联的时候,使用join和forallentriesin时哪个效率高些,高手给个详细的解释吧!!谢谢。能举个例子最好。。...
进行表关联的时候,使用join和for all entries in 时哪个效率高些,高手给个详细的解释吧!!谢谢。能举个例子最好。。
展开
1个回答
展开全部
如果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.
还有一个方法就是定义一个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.
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询