怎么提高ABAP程序的性能,你一般采用什么方法处理多表连查的问题

怎么提高ABAP程序的性能,你一般采用什么方法处理多表连查的问题,第1张

还有left outer join,前些日期才解决了一个性能优化的问题,跟这个有关。当内连接的数据表超过3个时,最好创建一个视图,对运行速度的优化非常明显,我就是这样解决的。我当时是四张表连接的,并在视图中添加筛选条件过滤数据,这样使程序取值时垃圾数据的数量减少了20万条之多,大大减少了ABAP内存的占用,程序处理时间也从1个小时减少到了20分钟。你也可以试试。for all entries in 当条件内表数据量很大时,也会使速度变的很慢,不得不用时,最好是多次取值,每次条件内表数量设定为5000条左右,RANGE TABLE也一样。

使用PERFORM FORM1 IN PROGRAM ('ZMM001')等价于PERFORM FORM1(ZMM001)

使用FIELD-SYMBOLS使用其他程序的数据,

FIELD-SYMBOLS <F1> TYPE ANY

DATA XX(50)

XX = '(ZMM002)G_DATA' "程序ZMM001中G_DATA的数据

ASSIGN (XX) TO <F1>

<F1> = 'SDFAS' "这样就可以将主程序中ZMM001的变量G_DATA的值修改为SDFAS了。

虽然我不懂MM模块,但是你可以在LOOP里面写个AT END OF XXX来完成这个动作,希望我的回答对你有所帮助

LOOP AT itab INTO wa

If wa-SHKZG = 'S'

wa-YI = wa-MENGE

Else

wa-YI = wa-MENGE -1

Endif

MODIFY itab from wa

clear : wa

endloop

因为不懂模块,所以我只能在程序方面上给你解答,模块方面请教别人吧

定义IS两个变量,为I型,即整数形。从后面的code可以看出,I是代表循环多少次,S是代表想加的1,2,3自然数连加后的结果。

DATA: I TYPE I,

S TYPE I

赋初值,I的值为1,S的值0。

I = 1

S = 0

Whileend while这是一个循环。"WHILE" 顾名思义,就是当什么什么条件满足的时候,才去做什么事情。

初值: I = 1 S = 0

第一次进whileendwhile里面。 S = S + I,于是S变成了1 I = I + 1 于是, I变成了2。

这时I是《= 10的,继续做循环哦。

第二次进whileendwhile里面。 S = S + I,于是S变成了3 I = I + 1 于是, I变成了3。

实现了1 + 2 的功能,结果存在S里。 这时I是《= 10的,继续做循环哦。

第三次进whileendwhile里面。 S = S + I,于是S变成了6 I = I + 1 于是, I变成了4。

实现了1 + 2 +3的功能,结果存在S里。 这时I是《= 10的,继续做循环。

第四次进whileendwhile里面。 S = S + I,于是S变成了10 I = I + 1 于是, I变成了5。

实现了1 + 2 +3 +4的功能,结果存在S里。 这时I是《= 10的,继续做循环。

继续第五次,第六次。。。。

第十次进whileendwhile里面。I = I + 1 于是, I变成了11。这时已经不满足I《= 10了条件了,结束循环。

WHILE I <= 10

S = S + I

I = I + 1

ENDWHILE

结束循环,将S结果输出在报表上。 over

WRITE: / '1+2+3+…+10=',S

创建TR(请求号)------->开发程序(左右的动作放到对应的TR)------>释放------->传输!

1:创建TR T-CODE SE10 点击创建按钮左上角第二个按钮 选择工作台请求 然后写入描述

2: 开发程序的时候点击保存会让你输入TR号

3: 测试成功后你选择要释放的TR 然后点击一个图标为红色的小车的按钮就可以了 注意 先释放子TR 然后释放主TR

4: 把TR告诉BASIS组的人员就行了

可执行程序的特点是可以直接执行,而无需事务码,这个也是一般报表开发最常用的程序类型。我们可以在 SE38 中直接点击执行按钮或按 F8 键来运行一个可执行程序。

可执行程序包含一些预定义的过程块,比如 INITIALIZATION、AT SELECTION-SCREEN、START-OF-SELECTION、END-OF-SELECTION 等等,有一个后台系统程序会控制可执行程序,按照规定的顺序依次调用这些过程块。首先显示一个选择屏幕,最后输出一个列表。可执行程序还能指定一个逻辑数据库,逻辑数据库也是一种程序,它按照预定义好的数据库表结构,依次根据主键读取相关的业务数据,可以用 SE36 查看逻辑数据库。

以上就是关于怎么提高ABAP程序的性能,你一般采用什么方法处理多表连查的问题全部的内容,包括:怎么提高ABAP程序的性能,你一般采用什么方法处理多表连查的问题、ABAP 调用另一个程序的子程序、SAP ABAP 程序 解读等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9356776.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存