前提:当使用insert,update或者delete时,应该用设置数据取代单个表数据集
这确保了只有保持这一次,接触了对数据库的负载。
应该在LOOP里嵌套SELECT,在外层的命中列表是非常小的。
有很多方式选择避免嵌套循环:
1:在FROM分句中建立JOIN
2:在ABAP字典中定义JOIN的视图
3:SELECT ... FOR ALL ENTRIES
在外层循环中,数据库表(PACKAGE SIZE)是一段一段读取到内表中的,通过主键排序(内表排序,或者读取数据时ORDER BY PRIMARY KEY)。
在内表里每个数据记录,相关记录读取到另一个内表中(用 SELECT ... FOR ALL ENTRIES)。这也是排序。
你可以继续用一个嵌套循环处理。
4:显示游标处理(OPEN CURSOR [WITH HOLD]...)。
太晚了,要休息了,具体处理下次再说。
有更好的建议,欢迎探讨。