如何提高abap程序运行效率

如何提高abap程序运行效率

ID:34757630

大小:152.68 KB

页数:8页

时间:2019-03-10

如何提高abap程序运行效率_第1页
如何提高abap程序运行效率_第2页
如何提高abap程序运行效率_第3页
如何提高abap程序运行效率_第4页
如何提高abap程序运行效率_第5页
资源描述:

《如何提高abap程序运行效率》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、如何提高ABAP程序运行效率如何提高ABAP程序运行效率中国石油测井有限公司钮顺摘要:ABAP的程序会需要花费大量的时间执行,而且会使其它进程被迫暂停以等待当前程序运行结束。本文通过对ABAP程序编写部分技巧的介绍,以及I/O操作,内存占用,CPU负载等方面介绍提高程序的运行效率。关键词:ABAP,I/O操作,内存占用,CPU负载前言信息化建设对公司实现率先建成一流的社会主义现代化企业和具有国际竞争力的跨国公司的奋斗目标,具有十分重要的意义,当然企业资源的管理和合理的应用尤为重要,这样ERP系统集信息技术与先

2、进的管理思想于一身,成为现代企业的运行模式,反映时代对企业合理调配资源,最大化地创造社会财富的要求,成为企业在信息时代生存、发展的基石。一个系统的成功应用主要在于它是否适合应用的环境,这样就取决于系统的开发工作,而高效完善的程序是系统的基础。1概念1.1ABAP高级业务应用编程(AdvancedBusinessApplicationProgramming)。它是SAP开发设计的用于对SAP系统进行应用分析、二次开发的主要工具,是所有SAP应用的基础。ABAP是一种支持结构化程序设计的语言,它合并了所有通常的控

3、制结构和模块化概念,同时,它还支持面向对象的程序设计方法。1.2ABAP的特性ABAP/4支持商业数据类型和操作。您可以用特殊日期和时间字段进行计算。系统会自动执行必需的类型转换。ABAP/4包含一个叫OpenSQL的SQL子集。用OpenSQL,您可以读取和访问数据库表,与所用的数据库系统无关。ABAP/4允许您定义和调用子程序。也可以调用其他程序的子程序。参数能够以各种方式从子程序传递或传递到子程序。8如何提高ABAP程序运行效率ABAP/4包含一种特殊子程序,叫做功能模块。您可以在中央库中创建和维护功能

4、模块。在调用程序和子程序之间功能模块有一个明确定义的数据接口。它们能够以调用程序的独立模式进行分别测试。ABAP/4报表程序用于分析数据库表中的数据。这种分析的结果可以显示在屏幕上或发送到打印机上。逻辑数据库支持报表程序。ABAP/4将对话程序组织为包含对话模块的模块池。每个动态程序(由一个屏幕及其流逻辑组成的“动态程序”)都基于一个ABAP/4对话程序。流逻辑包含对ABAP/4对话模块的调用。1.3和ABAP相关联的SAPBASIS结构SAPR/3系统是一个典型的三层架构系统,包括:表现层(Presenta

5、tionLayer):这是SAP用户和R/3系统交流的接口,用户在这一层对SAP系统进行操作。这层将用户的命令或者操作传送给R/3系统,然后系统进行相应的处理后把数据返还给用户。应用层(Applicationlayer):这层包括一个或者多个应用服务器和一个消息服务器。每一个应用服务器包括一系列服务以便运行应用程序。所有的服务分置在这些应用服务器之中,其实用户需要的只是其中的一个应用服务器,多个服务器之间传递信息以决定用户到底需要的是哪个服务器的服务。数据库层(Databaselayer):这里就是SAP系统

6、的核心,存放了所有SAP系统的数据。图1三层逻辑结构8如何提高ABAP程序运行效率2ABAP程序优化2.1语法优化2.1.1SELECT写法一:SELECT MATNRINTO IT_MARAFROM MARA.APPEND IT_MARA.ENDSELECT.写法二:SELECT MATNRINTO TABLE IT_MARAFROM MARA.写法一是将数据先放置到工作区再将工作区的数据添加至内表,第二种是将数据直接放置到内表里,当然第二种方法效率要高很多。同理尽可能的使用INTOITABLE语句来代替S

7、ELECT—ENDSELECT。不要再循环中使用SELECT语句,这样每次循环都要SELECT一下,SELECT本身就是循环,如此循环嵌套循环,时间消耗度是N*N。在数据量大了之后,在SELECT和ENDSELECT之间做处理的时间会很长,SELECT-ENDSELECT语句在整个过程中是保持数据库连接的,从而导致数据库端因为连接超时而断开,因此在处理大数据量的报表中,不能用SELECT-ENDSELECT这种写法。2.1.2批量处理写法一:LOOP AT INT_FLIGH.  IF INT_FLIGH-F

8、LAG IS INITIAL.    INT_FLIGH-FLAG = 'X'.  ENDIF.  MODIFY INT_FLIGH.ENDLOOP.写法二:INT_FLIGH-FLAG = 'X'.MODIFY INT_FLIGH TRANSPORTING FLAG WHERE FLAG IS INITIAL.第一种方法是使用LOOP循环内表内的每一行数据进行判断然后处理,第二种是直接对整个内表处

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。