两个内部表的比较(大表)

2020-08-19 02:00发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

内部表包含大量数据。

在调试此代码时,它可以正常工作,但是在执行(按f8键)时却未运行程序(我是说程序正在不断加载)。

请给我任何建议。

在it_tab1上循环,然后将其循环到wa_tab2中
*在it_tab2中循环到wa_tab2中
将键obj_name = wa_tab1-tablename读入it_tab2到wa_tab2中。
*其中obj_name = wa_tab1-tablename。
CLEAR wa_final
wa_final-tablename = wa_tab1-tablename。
wa_final-description = wa_tab1-description。
wa_final-total_records = wa_tab1-total_records。
wa_final-package = wa_tab2-package。
wa_final-package = created_on = wa_tab2-created_on。
附加wa_final至it_final。
ENDLOOP。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

内部表包含大量数据。

在调试此代码时,它可以正常工作,但是在执行(按f8键)时却未运行程序(我是说程序正在不断加载)。

请给我任何建议。

在it_tab1上循环,然后将其循环到wa_tab2中
*在it_tab2中循环到wa_tab2中
将键obj_name = wa_tab1-tablename读入it_tab2到wa_tab2中。
*其中obj_name = wa_tab1-tablename。
CLEAR wa_final
wa_final-tablename = wa_tab1-tablename。
wa_final-description = wa_tab1-description。
wa_final-total_records = wa_tab1-total_records。
wa_final-package = wa_tab2-package。
wa_final-package = created_on = wa_tab2-created_on。
附加wa_final至it_final。
ENDLOOP。

付费偷看设置
发送
5条回答
Doze时光
1楼-- · 2020-08-19 02:39

RACHAMALLU SHIREESHA

恐怕您对它的理解有所不同。

当您保留一个断点并执行时,您将在该断点处强制停止程序的执行,因此您的程序将在该断点处停止,并且对于每个功能,按键操作(F5,F6,F7和F8)系统都可能响应

现在考虑直接执行时,系统必须先执行所有代码行,然后才能真正退出程序。 对于您而言,由于内部数据量巨大,系统将花费大量时间来完成所有订单项的处理。

您可以通过执行程序来检查程序的正确性。 处理较少的数据。

注意:在前台系统只能运行特定的几分钟(取决于您的BASIS团队完成的配置,通常为45分钟),发布后该系统可能会导致转储。 如果您想了解案例的实际执行时间,建议您在后台执行,并在t代码SM37中检查持续时间。

注意!

小熊yu生菜
2楼-- · 2020-08-19 02:37

如果 在表行方面表示"巨大",然后确保根据字段OBJ_NAME对IT_TAB2进行排序或散列。 否则,处理将非常慢。

当学会了学习
3楼-- · 2020-08-19 02:51

可能尝试使用字段符号。 它们确实具有性能优势。 除此之外,这还取决于表的结构,表的类型(标准/排序)和数据类型。 请提供所有这些信息,以便从社区中获得更好的答案。

 LOOP在it_tab1上分配field-symbol()。
 读取表it_​​tab2为键obj_name =  -tablename分配字段符号()。
 在lt_final分配字段符号()的后面添加初始行。

 lfs_final>-表名= -表名。

 *****添加其他字段******
 ENDLOOP。
派大星 ヾ
4楼-- · 2020-08-19 02:50

RACHAMALLU SHIREESHA ,请继续处理您的公开问题。

< ul>
  • 评论答案或您的问题是否还有未解决的问题。
  • 否则将答案标记为接受,如果它可以帮助您解决问题
  • 或发布您自己的答案并接受 如果您自己找到了另一个有用的解决方案
  • ,或者将您的问题重定向到另一个相关且对解决您的问题有用的问题
  • 最后,请关闭您的问题
  • 梦想连接
    5楼-- · 2020-08-19 02:34

    以下编码在性能方面会更好。

    我想知道,如果您的完整编码也没有其他问题,例如无限循环, 因为根据您的描述,它永远不会停止。 (您是停止它还是遇到超时转储?您是否尝试过在后台运行它,看看它花了多长时间,还是"从不停止"还是不是"选择",因为您需要它吗? 对话框报告显示或下载到GUI?)

    向我们提供有关您的编码和两个表中数据量的更多信息,以便我们更全面地评估您的问题。

    我假设您的性能问题也可能与TOTAL_RECORDS以及如何计算有关,如果我猜对了您的要求是什么。

    您是否真的要遍历所有数据库表,收集它们的总记录,并进行合并 它们带有一些DDIC信息,然后想要显示或下载该信息?

    我希望此类尝试的性能都会很差。

    尝试仅使用Z表或仅使用 首先查看几个表格,然后看看有多快。 您可以在报表中使用select-options变量,以使其缓慢启动。

    数据it_tab2类型已排序的表your_table_type,具有非唯一键objname。
     FIELD-SYMBOLS 类似于it_tab1的行。
     FIELD-SYMBOLS 类似于it_tab2的行。
    
     清除wa_final。
     循环至it_tab1 ASSIGNING 。
    
       使用表键obj_name =  -tablename读取表it_​​tab2分配。
       检查sy-subrc = 0。
    
       wa_final-tablename = -表名。
       wa_final-description = -描述。
       wa_final-total_records =  -total_records。
       wa_final-package = -软件包。
       wa_final-created_on =  -created_on。
    
       将wa_final插入表it_final。
    
     ENDLOOP。

    一周热门 更多>