点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我正在优化代码。 在一个地方,我已经将相当大的DD表DD03L的子集选择到了一个较小的内部表中,供循环使用。 再进一步,我需要在DD表DD05P中查询有关关系的数据,然后再次我首先创建一个较小的内部表供循环使用-这第二个表我必须与DD03L联接,因为我需要另一个字段。
我的问题是:由于我已经有一个内部表DD03L_int,该内部表比DD03L小得多,我不能以此与数据库表DD05P联接,从而节省性能吗? 还是有其他选择,例如使用FAE之类的东西?
非常感谢!
最诚挚的问候,
Sapperdapper
你好弗里德里希,
不能在数据库表和内部表之间使用JOIN; 该关键字仅用于数据库查询。 为何不使用JOIN一次读取两个表,而不是将每个表分别读取到内部表中? 听起来您无论如何都在联接表。
如果这种方法不能满足您的要求,请提供更多详细信息,说明您正在从每个表/视图读取哪些字段以及尝试创建的结果集。
干杯
艾米
https://help.sap.com/doc/abapdocu_753_index_htm/7.53/zh-CN/index.htm?file=abapselect_itab.htm
亲爱的弗里德里希 ,
使用FOR ALL ENTRIES的SELECT语句将很方便,在这种情况下,您需要将与使用FOR ALL ENTRIES比较条目的表和要从中选择数据的表相等的字段等同起来。 >
EX-
选择*
EKPO面包
对于表ITAB中的所有条目
WHERE EBELN = ITAB-EBEL。
致谢
Dinesh????
艾米:感谢您的支持
大家好,
非常感谢所有帮助! 使用此技巧,我能够将查询DD03L的数据量减少大约90%-现在,我只查询我提供给用户的表的字段,这是我所需要的-从而导致整体运行时间 (目前)减少了75%;-)
再次感谢!
最诚挚的问候,
Sapperdapper
亲爱的弗里德里希,
最好从一个表中将所有相关数据选择到ITAB1中,然后基于"将ITAB1中的所有条目转换成ITAB2"从另一个表中选择数据。
致谢
Dinesh????
嗨,Manu,
好吧,加入DD05P是困难的,因为SE11不会告诉我该表的关键字段-我假设它是TABNAME和FIELDNAME,但是在某些情况下,我在FIELDNAME中只有一个字段-在两个字段中相同 记录-但是FORKEY中有两个不同的记录,这是正确的。 因此,我不得不参加两次尝试,但是后来我遇到了其他一些困难,那就是当我意识到这样做对我的整体表现没有任何好处时。
结合这两个问题不是问题,最终我会解决的。 问题正在过滤-我的程序应该是通用的,因此我不能排除太多。 DD05P非常小-我可以将其记录到少于10万条记录中-但其中一个仅处理表。 包含所有字段的DD03L自然要大得多。
将所有部件放在一起会有所不同:首先,我必须对DD03L进行一次SELECT,这给了我很多记录,但是稍后当我有一个(很小的)内部表时 用用户选择的表和字段作为输入,我可以用它来相应地从DD03L进行SELECT并只得到一小部分。 与DD05P相同。
最诚挚的问候,
Sapperdapper
一周热门 更多>