ABAP Select Skill....

今天在www.sapsh.com 论坛上看到了一个帖子是关于ABAP 程序优化的写法,这里我做一个整理:

用来抓取数据提搞速度,

写法1:

SELECT MATNR BUDAT
INTO(ITAB-MATNR,ITAB-BUDAT)
FROM AUFM
WHERE MATNR IN P_MATNR AND
BUDAT IN P_BUDAT.

写法2:

SELECT MATNR BUDAT
INTO corresponding fields of table itab
FROM AUFM
WHERE MATNR IN P_MATNR AND
BUDAT IN P_BUDAT.

以前的程序运行所得的结果都是一样的, 但获取数据的速度,方法1 比方法2 快, 为什么呢?

取少数项目值时用INTO赋值到 变量中,取得项目多时应使用INTO TABLE,
对应的内表中的项目定义顺序最好和SELECT所选项目顺序相同,然后直接使用INTO TABLE itab,
而不是用CORRESPONDING FIELD,CORRESPONDING FIELD语句使编程人员方便编程,
不用一个一个对照项目顺序,但实际上这部分功能没有省,而是系统替你来完成的,
系统赋值前,要先对照是否项目名相同,相同才赋,不同继续向下比较,所以很费系统资源,
编程序本身就是“一劳永逸”的事情,还是建议在编写的时候多费点心思调整好,
可为将来千万次的调用,提高意想不到的效率。

 

 

posted on 2008-03-11 14:34  封起De日子  阅读(108)  评论(0编辑  收藏  举报

导航