点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
由于我是ABAP世界的新手,因此我需要一些有关性能问题的建议。
在我的程序中,有多个选择单个查询命中数据库,其中存储了100k数据,并需要4-5个小时来获取结果。 我引用了许多博客和Google,并得知我可以将数据库中的所有数据放入内部表中并获取数据。 但是我很困惑如何实现它。 下面是代码。 谁能指导我如何提高性能,并在更短的时间内完成获取。 在这里,c_t_data中填充了100k条记录。 然后在其中触发了许多选择单个语句。
在c_t_data处循环播放。
清除:wa_za。
从mara中选择mara-matnr
在marn
中matar = c_t_data-matnr
并且lvorm =空间。< br>检查sy-subrc =0。
选择单个user4 waers
INTO(wa_za-yyuser4,wa_za-yywaers)
从aufk
在其中aufnr = c_t_data-aufnr。
选择单个kursk prsdt
INTO(wa_za-yykursk,wa_za-yyprsdt)
从vbkd
那里vbeln = c_t_data-vbeln
并且posnr ='000000'。
选择单个库尔斯克prsdt
INTO(wa_za-yykursk,wa_za-yyprsdt)
从vbkd
哪里vbeln = c_t_data-vbeln
和posnr = c_t_data-posnr。
选择单个vbegdat venddat
INTO(wa_za-yyvbegdat,wa_za-yyvenddat)
从veda
在vbeln = c_t_data-vbeln
和vposn ='000000'。
选择单个vbegdat venddat
INTO(wa_za-yyvbegdat,wa_za-yyvenddat)
从veda
那里vbeln = c_t_data-vbeln
和vposn = c_t_data-posnr。
选择tj30t〜txt04进入wa_za-yycontsts
从玩笑中加入
加入jsto
开启jsto〜objnr = jest〜objnr
加入tj30t
开启tj30t〜stsma = jsto〜stsma
在何处jest〜objnr = c_t_data-objnr
AND jest〜inact =空格
AND tj30t〜stsma = jsto〜stsma
AND tj30t〜estat = jest〜stat
AND tj30t〜spras ='EN '。
ENDSELECT。
清除wa_za-yyconroot。
移动c_t_data-vbeln(7)到wa_za-yyconroot。
从vbak中选择单个knumv到vbak-knumv
中,vbeln = c_t_data-vbeln。
从konv中选择单个kbetr到wa_za-yykbetr
中,knumv = vbak-knumv且
KPOSN ='000000'和
KSCHL ='ZDIS'。
选择vbeln parvw kunnr pernr parnr
从vbpa到表itab_vbpa
中,vbeln = c_t_data-vbeln。
预先感谢
库马尔。
你好,
感谢您的所有宝贵反馈。 我完成了任务。
Rahul,
我想这可行,但是两次访问数据库仍然显得多余。 如果'000000'SELECT的结果存储在程序中,则将有特定的行项目,或者如果没有特定的项目,则将使用"默认"结果。
但是无论谁执行了功能要求,要么都不理解,要么无法在规范中正确解释。
一周热门 更多>