如何大大提高ABAP4程序运行速度是否无法根本解决
一、如何大大提高ABAP4程序运行速度?是否无法根本解决?
小弟补充几点:1、不要用select ………….endselect,更不要嵌套几个这种语句2、在select 的时候不要怕麻烦,把所有需要的字段全都写出来,都使用into…..

二、如何大大提高ABAP 4 程序运行速度? 是否无法根本解决?
都是乱说的:什么少用JOIN,少用SELECT ENDSELECT。如果有哪种方式优越与其没有理由来发明那么多那么多取数方式让你选择,是由于每种方式都有各自的优合它的取数方式,你要做的上面说的,速度慢到系统都DUMP了,那么我明确地简单的以为用“JOIN”代替“SELE用“FOR ALL ENTRIES”代替“LOOP”等等就可以解决的调试也好,还是系统的报表运行分析器也好,你要找到耗时最多的SQL STATSTATEMENTERE语句中包含的条件没有建立索引,还是由于取的数量条目数太多(超过10000)?如果是段的索引;如果是后者,则从各种角度去想办法,尽量减少条目数。还有的情况不是某个特定的SQL STATEMENT慢,而是SQL STATEMENT存在于一个超过10000次的循环中,那么这种循环次数。除了减少循环次次数。例如你有一个含有物我还想要一列物料描述”,那么你可以这样优化OP AT GT_OUTPUT. “GT_OUTPUT为最终展示的内表。 READ TABLE ET_MATERIAL WITH KEY MATNR = NR. IF SY-SUBRC = 0. GT_OUTPUT-MAT_DESC= E_DESC. ELSE. SELECT SINGLE MAKTTO GT_OUTPUT-MATDES = GT***.ETMATERIAL-MATNR = GT*L-MAT_DESC=GT_OUTPUT-MAT_DESC. APPEND ET_MATERIAL. ……..内存来减少读数据库的次数,这在对于处理象以上的情形(特别是GT_号的行)时,是划得来的。尽量减少多层LOOP嵌套也是很有必要的。许方面去考虑,如何提高程序运行的速度。对由于本身需要处理大规模数据,并且有很复杂的逻辑运算,再怎么优化也会很慢。那么这种情况,你们公司就需要考虑用BW了。Regards,Vincent.
查看原帖>></p>
三、如何提高ABAP程序运行效率
?尽量使用SELECT(MAX,MIN,SUM,AVG)和SELECTSINGLE;
?尽量使用SELECT…INTO TABLE tab ,避免使用SELECT*;
?不要使用SELECT…ENDSELECT语句;
?所需的数据时来自簇表BSEG时,可使用透明表代替。
?BSAD:应收明细(已清帐)
?BSID:应收明细(未清帐)
?BSAS:总帐明细(已清帐)
?BSIS:总帐明细(未清帐)
?BSAK:应付明细(已清帐)
?BSIK:应付明细(未清帐)
?尽量避免在LOOP 中访问数据库,可以再之前先将数据取到内表,然后在LOOP中使用二分法查找READ TABLE tab WITH KEY ….BINARY SEAECH。