代码中的性能问题

2020-09-10 15:42发布

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

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


您好,

下面的代码花费大量时间。 我如何提高此代码的性能-

选择venum作为venum,
  exidv AS exivd
  插入表@DATA(it_vekp)
  从vekp
  对于@it_vepo中的所有条目
  哪里的毒液= @ it_vepo-unvel。


  循环到it_vekp INTO DATA(wa_vekp)。
   在venum = wa_vekp-venum处更新vekp SET erlkz ='X'。
    如果sy-subrc = 0。
    提交工作。
  万一。
 ENDLOOP。

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

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


您好,

下面的代码花费大量时间。 我如何提高此代码的性能-

选择venum作为venum,
  exidv AS exivd
  插入表@DATA(it_vekp)
  从vekp
  对于@it_vepo中的所有条目
  哪里的毒液= @ it_vepo-unvel。


  循环到it_vekp INTO DATA(wa_vekp)。
   在venum = wa_vekp-venum处更新vekp SET erlkz ='X'。
    如果sy-subrc = 0。
    提交工作。
  万一。
 ENDLOOP。
付费偷看设置
发送
6条回答
clasier
1楼-- · 2020-09-10 16:26

检查

@it_vepo

不为空。

土豆飞人
2楼-- · 2020-09-10 16:18

此外,如果您以某种方式破坏了数据库,则SAP将向您收取$$$$进行修复,这很可能违反了许可条件。

小熊yu生菜
3楼-- · 2020-09-10 16:14

巴杜,

尽管有关于您问题的所有评论,但顺便说一句,它们是完全正确的,如果仅从性能方面考虑,在循环内使用update并不是一个好主意(甚至不提提交!)。 尝试像下面那样使用修改,并检查性能是否提高。

选择*
   到表@data(it_vekp)
   来自vekp
   对于@it_vepo中的所有条目
  venum = @ it_vepo-unvel。

 数据ls_vekp类似于it_vekp的行。
 ls_vekp-erlkz ='X'。

 从ls_vekp传输erlkz的地方修改it_vekp,其中erlkz是初始的。
 从表it_vekp修改vekp。
 

此致

拉斐尔

绿领巾童鞋
4楼-- · 2020-09-10 16:11

请同时提供SELECT和UPDATE的执行计划(SQL EXPLAIN)。

四川大学会员
5楼-- · 2020-09-10 16:37

您还可以限制数据集 添加erlkz =空间。

缺少要处理的数据。

jovirus
6楼-- · 2020-09-10 16:21

很好地观察到@Sandra Rossi,更改为星号。

一周热门 更多>