电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

如何提高ABAP程序运行效率VIP免费

如何提高ABAP程序运行效率_第1页
1/8
如何提高ABAP程序运行效率_第2页
2/8
如何提高ABAP程序运行效率_第3页
3/8
如何提高ABAP程序运行效率如何提高ABAP程序运行效率中国石油测井有限公司钮顺摘要:ABAP的程序会需要花费大量的时间执行,而且会使其它进程被迫暂停以等待当前程序运行结束。本文通过对ABAP程序编写部分技巧的介绍,以及I/O操作,内存占用,CPU负载等方面介绍提高程序的运行效率。关键词:ABAP,I/O操作,内存占用,CPU负载前言信息化建设对公司实现率先建成一流的社会主义现代化企业和具有国际竞争力的跨国公司的奋斗目标,具有十分重要的意义,当然企业资源的管理和合理的应用尤为重要,这样ERP系统集信息技术与先进的管理思想于一身,成为现代企业的运行模式,反映时代对企业合理调配资源,最大化地创造社会财富的要求,成为企业在信息时代生存、发展的基石。一个系统的成功应用主要在于它是否适合应用的环境,这样就取决于系统的开发工作,而高效完善的程序是系统的基础。1概念1.1ABAP高级业务应用编程(AdvancedBusinessApplicationProgramming)。它是SAP开发设计的用于对SAP系统进行应用分析、二次开发的主要工具,是所有SAP应用的基础。ABAP是一种支持结构化程序设计的语言,它合并了所有通常的控制结构和模块化概念,同时,它还支持面向对象的程序设计方法。1.2ABAP的特性ABAP/4支持商业数据类型和操作。您可以用特殊日期和时间字段进行计算。系统会自动执行必需的类型转换。ABAP/4包含一个叫OpenSQL的SQL子集。用OpenSQL,您可以读取和访问数据库表,与所用的数据库系统无关。ABAP/4允许您定义和调用子程序。也可以调用其他程序的子程序。参数能够以各种方式从子程序传递或传递到子程序。ABAP/4包含一种特殊子程序,叫做功能模块。您可以在中央库中创建和维护功能模块。在调用程序和子程序之间功能模块有一个明确定义的数据接口。它们能够以调用程序的独立模式进行分别测试。1如何提高ABAP程序运行效率ABAP/4报表程序用于分析数据库表中的数据。这种分析的结果可以显示在屏幕上或发送到打印机上。逻辑数据库支持报表程序。ABAP/4将对话程序组织为包含对话模块的模块池。每个动态程序(由一个屏幕及其流逻辑组成的“动态程序”)都基于一个ABAP/4对话程序。流逻辑包含对ABAP/4对话模块的调用。1.3和ABAP相关联的SAPBASIS结构SAPR/3系统是一个典型的三层架构系统,包括:表现层(PresentationLayer):这是SAP用户和R/3系统交流的接口,用户在这一层对SAP系统进行操作。这层将用户的命令或者操作传送给R/3系统,然后系统进行相应的处理后把数据返还给用户。应用层(Applicationlayer):这层包括一个或者多个应用服务器和一个消息服务器。每一个应用服务器包括一系列服务以便运行应用程序。所有的服务分置在这些应用服务器之中,其实用户需要的只是其中的一个应用服务器,多个服务器之间传递信息以决定用户到底需要的是哪个服务器的服务。数据库层(Databaselayer):这里就是SAP系统的核心,存放了所有SAP系统的数据。图1三层逻辑结构2ABAP程序优化2.1语法优化2.1.1SELECT写法一:2如何提高ABAP程序运行效率SELECTMATNRINTOIT_MARAFROMMARA.APPENDIT_MARA.ENDSELECT.写法二:SELECTMATNRINTOTABLEIT_MARAFROMMARA.写法一是将数据先放置到工作区再将工作区的数据添加至内表,第二种是将数据直接放置到内表里,当然第二种方法效率要高很多。同理尽可能的使用INTOITABLE语句来代替SELECT—ENDSELECT。不要再循环中使用SELECT语句,这样每次循环都要SELECT一下,SELECT本身就是循环,如此循环嵌套循环,时间消耗度是N*N。在数据量大了之后,在SELECT和ENDSELECT之间做处理的时间会很长,SELECT-ENDSELECT语句在整个过程中是保持数据库连接的,从而导致数据库端因为连接超时而断开,因此在处理大数据量的报表中,不能用SELECT-ENDSELECT这种写法。2.1.2批量处理写法一:LOOPATINT_FLIGH.IFINT_FLIGH-FLAGISINITIAL.INT_FLIGH-FLAG='X'.ENDIF.MODIFYINT_FLIGH.ENDLOOP.写法二:INT_FLIGH-FLAG='X'.MODIFYINT_FLIGHTRANSPORTINGFLAGWHEREFLAGISINITIAL.第一种方法是使用LOOP循环内表内的每一行数据进行判断然后处理,第二种是直接对整个内表处理,当然第二种方法要快的多。同理合...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

如何提高ABAP程序运行效率

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部