abap程序执行效率

合集下载

SAPABAP性能优化

SAPABAP性能优化

SAPABAP性能优化SAPABAP(高级商务应用编程语言)是一种面向SAP应用程序开发的编程语言。

在开发SAPABAP应用程序时,性能优化是非常重要的,可以提高应用程序的响应速度和效率。

以下是一些优化SAPABAP性能的技术和实践。

1.数据库访问优化:在数据库访问方面,以下几种方法可以提高性能:-尽量避免对数据库频繁的读写操作,尽量减少数据库访问的次数。

-使用WHERE语句来限制查询结果的数量,尽量避免返回大量数据。

-使用索引来加速数据库查询操作。

对于频繁访问的字段,可以创建相应的索引。

-避免在循环中进行数据库查询操作,可以将多次查询合并为一次查询,提高效率。

2.代码优化:在编写ABAP代码时,以下几种方法可以提高性能:-避免使用SELECT*语句,尽量只选择需要的字段。

-避免在循环中进行复杂的计算操作,可以将计算提取到循环之外,减少计算次数。

-避免频繁使用长字段,例如TEXT字段,可以将其存储在辅助表中,减少数据库访问次数。

-使用内表来处理数据,避免频繁的数据库访问。

3.内存优化:在使用内存方面,以下几种方法可以提高性能:-尽量减少内存的使用,避免无用的变量和数据结构占用过多内存。

-对于大量数据的处理,可以使用ITAB或HASHEDTABLE来提高效率,尽量避免使用SORTEDTABLE。

-注意内存泄漏问题,及时释放不再使用的内存空间。

4.并发处理优化:在处理并发操作时,以下几种方法可以提高性能:-使用合适的锁策略,避免死锁和长时间的等待。

-尽量避免对同一个资源进行频繁的读写操作,可以考虑其他方法来减少并发冲突。

-使用事务控制来保证数据的一致性和完整性。

-如果可能,可以将并发操作分解成多个较小的操作,减少并发冲突的可能性。

5.缓存优化:在使用缓存方面,以下几种方法可以提高性能:- 使用合适的缓存技术,例如SAP的共享内存(Shared Memory)和缓冲区(Buffers)。

-对于频繁使用的数据,可以将其缓存在共享内存中,提高访问速度。

abap reduce使用方法

abap reduce使用方法

abap reduce使用方法(最新版)目录1.ABAP REDUCE 方法的概念与作用2.ABAP REDUCE 方法的语法与参数3.ABAP REDUCE 方法的应用实例正文【1.ABAP REDUCE 方法的概念与作用】ABAP REDUCE 方法是 SAP ABAP 编程语言中一种用于简化和优化程序设计的方法。

它可以帮助程序员在编写代码时减少冗余操作,提高程序执行效率。

REDUCE 方法主要用于对两个或多个数值进行算术运算,如加减乘除等,它可以将多个操作合并为一个步骤,从而减少计算次数,提高程序运行速度。

【2.ABAP REDUCE 方法的语法与参数】ABAP REDUCE 方法的语法如下:```REDUCE(val1, val2,...)```其中,val1、val2 等为参与运算的数值。

REDUCE 方法可以接受两个或多个参数,这些参数可以是数值型变量、常量或者表达式。

在使用REDUCE 方法时,各参数之间用逗号分隔。

REDUCE 方法的返回值是计算结果。

需要注意的是,REDUCE 方法不会对参与运算的数值进行类型转换,因此在使用时,各参数的类型应保持一致。

【3.ABAP REDUCE 方法的应用实例】下面通过一个实例来说明 ABAP REDUCE 方法的应用:假设有一个程序需要对 10 个数值进行求和计算,如果使用传统的循环语句,需要进行 10 次加法运算。

而通过使用 ABAP REDUCE 方法,可以将这 10 次加法运算合并为一次,从而大大提高程序运行效率。

具体代码如下:```DATA: lv_sum TYPE i,lv_num TYPE i VALUE 10.lv_sum = REDUCE(lv_num) / 10.```在上述代码中,我们使用 REDUCE 方法对 10 个数值求和,并将结果赋值给 lv_sum 变量。

这样,程序只需执行一次计算,即可得到最终结果,提高了程序运行效率。

abap效率

abap效率

涉及大量的数据处理,
应该首先和系统管理员协商来决定这个程序最多能使用多少内存,以计算这个程序需要使用多
少资源。
然后你就可以决定是把数据写入内存还是交换空间。
3.尽可能多地使用表的键值作为WHERE分句的条件选项。尽可能让程序只读取一定范围内的记录
(比如说,你只准备操作一个月之内的业务数据,那么对于这一个月的业务就应该有一定的范围
杭州娃哈哈集团有限公司
地 址:杭州市秋涛北路128-1号
通信地址:杭州市秋涛北路128-1号娃哈哈集团有限公司计算机中心
邮 编:310020
电 话:(86)-571-86033064
电子邮件:mjz@
MSN: courser001@
*********************************************
如果使用到的记录条数超出NUM_RECS参数的限制,数据将被存放在硬盘上的交换空间(不是内
存)。
7.尽量使用SELECT A B C INTO TABLE ITAB这样的语句。这个操作会将所有符合条件的数据一次
性地读进内表,
这比在SELECT A B C INTO ITAB... ENDSELECT的循环中添加数据到内表要快。请注意,这里声
ABAP/4的程序会需要花费大量的时间执行,而且会使其它进程被迫暂停以等待当前程序运行结
束。
这里提供一些建议以提高你的程序运行速度和系统荷载。
1.最主要的是尽量减少I/O操作,然后是内存占用,在再就是CPU的负载。类似对硬盘的读写的I/O
操作是最耗费时间的。
如果对内存的操作不加以控制,可能有些时候不得不对硬盘的交换空间操作,这样就增加了对

ABAP总结

ABAP总结

ABAP总结ABAP(Advanced Business Application Programming)是一种企业级应用程序开发语言,专门用于SAP系统。

它是SAP系统的核心开发语言,用于开发和定制各种业务应用和报表。

下面是对ABAP的详细总结。

1.ABAP的历史和发展ABAP最早是在20世纪80年代中期开发的,最初只是用于控制SAPR/2系统的数据传输和处理。

随着SAP系统的不断发展和演变,ABAP也不断演进,提供了更多的功能和特性,成为了SAP系统的核心开发语言。

2.ABAP的特点和优势ABAP的特点包括:-高度集成性:ABAP可以与SAP系统的各个组件进行无缝集成,实现复杂的业务逻辑。

-丰富的功能库:ABAP提供了大量的标准功能库,开发人员可以直接调用这些功能库,提高开发效率。

-强大的调试工具:ABAP提供了强大的调试工具,可以方便地调试和排查代码中的错误。

-支持面向对象编程:ABAP支持面向对象编程,开发人员可以使用面向对象的编程技术,提高代码的可维护性和复用性。

-大规模数据处理能力:ABAP可以处理大规模的数据,支持高并发和高性能的数据处理。

3.ABAP的基本语法和数据类型ABAP的基本语法类似于其他编程语言,包括变量声明、条件判断、循环和函数调用等。

ABAP支持各种数据类型,包括整数、浮点数、字符串、日期和时间等。

ABAP还提供了结构体和表格等复杂数据类型,方便处理复杂的数据结构。

4.ABAP的模块和函数ABAP程序通常被组织成模块,每个模块包含一个或多个子程序。

子程序是独立的代码块,可以被其他模块调用。

ABAP还提供了大量的标准函数,可以直接调用这些函数来实现常用的功能,如字符串处理、日期计算和数学运算等。

5.ABAP的数据库操作和数据访问ABAP可以直接访问数据库,执行SQL语句来读取和更新数据。

ABAP提供了丰富的数据库操作功能,包括查询语句(SELECT)、插入语句(INSERT)、更新语句(UPDATE)和删除语句(DELETE)等。

SAPABAP程序性能优化

SAPABAP程序性能优化

SAPABAP程序性能优化SAPABAP是一种高级商务应用编程语言,用于在SAP系统中开发和定制程序。

在开发ABAP程序时,程序的性能是一个重要的考虑因素。

优化ABAP程序的性能可以提高系统的响应速度和吞吐量,提高用户体验,减少系统负载,延长硬件使用寿命并节省资源。

下面将介绍一些常见的优化技术和最佳实践。

1.使用合适的数据库访问方法:SAPABAP程序通常需要与数据库进行交互。

在数据库访问方面,使用合适的方法可以大大提高性能。

例如,使用SELECT语句并带有合理的WHERE条件可以减少检索的数据量。

使用内部表进行数据操作,而不是使用数据库表,可以避免不必要的数据库访问。

2.避免在循环中执行数据库访问操作:在循环中执行数据库访问是一个常见的性能瓶颈。

如果可能的话,尽量避免在循环中执行数据库访问操作。

可以将数据库操作放在循环外部,并使用适当的数据结构来处理数据,以减少数据库访问的次数。

3.使用合适的索引:索引是一种用于加速数据库查询操作的数据结构。

为数据库表添加适当的索引,可以减少查询操作的时间复杂度,提高查询性能。

在ABAP程序中,可以使用数据库表的维护事务码(SE14)来添加或删除索引。

4.使用合适的缓存技术:缓存是一种将频繁访问的数据存储在存储介质中的技术。

在ABAP程序中,可以使用SAP提供的缓存技术,如共享内存和工作区缓存,来提高数据访问的性能。

使用缓存可以减少数据库访问的次数,从而显著提高程序的性能。

5.避免冗余的计算:在ABAP程序中,可以通过避免重复计算来提高性能。

如果一些计算结果在程序中多次使用,可以将结果存储在一个变量中,并在需要时使用该变量,而不是每次都重新计算。

6.使用合适的数据类型:选择合适的数据类型可以提高程序的性能。

例如,使用整数类型(INTEGER)而不是字符类型(CHAR)来存储整数数据,可以减少内存占用和计算时间。

在ABAP程序中,可以使用合适的数据类型以及相应的类型转换操作,来提高程序的性能。

ABAP程序性能优化

ABAP程序性能优化

ABAP程序性能优化ABAP是一种高级编程语言,用于在SAP系统中开发和定制业务应用程序。

但是,在处理大型数据集和复杂业务逻辑时,ABAP程序可能会面临性能瓶颈。

为了提高ABAP程序的性能,开发人员需要采取一些优化措施。

以下是一些常见的ABAP程序性能优化技巧:1.数据库访问优化:-使用合适的索引:使用合适的索引可以大大提高数据库查询的性能。

开发人员需要对数据库表进行分析,并根据查询需求创建适当的索引。

-最小化数据库访问:减少数据库查询的次数可以提高性能。

开发人员可以通过合并查询、缓存数据或使用更有效的SQL语句来减少数据库访问。

-避免不必要的排序:如果不需要对查询结果进行排序,可以避免使用ORDERBY子句,从而减少查询时间。

-使用合适的尺寸:当定义和使用内部表时,需要考虑内存使用情况。

合理设置内部表的尺寸可以减少内存占用和数据传输时间。

2.ABAP编程技巧优化:-使用合适的循环:在处理大规模数据集时,循环结构的选择非常重要。

尽量使用适当的循环语句,如FORALLENTRIES、LOOPAT等,以最小化处理时间。

-避免使用SELECT*:避免使用SELECT*语句可以减少不必要的数据传输和处理时间。

只查询所需的字段,并尽量使用WHERE子句过滤数据。

-选择合适的数据类型:使用合适的数据类型可以提高内存和处理效率。

尽可能使用小尺寸的数据类型,如CHAR和INT1,而不是VARCHAR和INT4-使用内存表:内存表可以在内存中存储数据,提供快速访问和处理。

开发人员可以将数据加载到内存表中,然后在内存中进行查询和处理,以减少数据库访问。

3.代码优化和调试:-避免冗余代码:尽量避免编写重复的代码。

当发现重复的代码段时,可以考虑将其封装为可重用的函数或方法。

-使用合适的异常处理:捕获和处理异常可能会影响性能。

开发人员应该使用合适的异常处理机制,以尽量减少异常的发生和处理时间。

-日志和调试输出:在开发和测试阶段,可以使用日志和调试输出来跟踪程序的执行和性能。

提高ABAP编程执行效率的技巧分析

提高ABAP编程执行效率的技巧分析

提高ABAP编程执行效率的技巧分析作者:齐洪伟来源:《电子世界》2013年第14期【摘要】通过实施ERP可以有效的提高企业的管理效率,在现代企业中得到了非常广泛的应用。

ABAP程序作为企业资源计划系统(ERP)的重要组成部分,其程序的好坏直接影响了ERP在企业系统中的应用。

本文将围绕ABAP编程方面的内容,对提高程序的执行效率提出了自己的看法和技巧。

【关键词】ABAP;程序;技巧通过实施ERP即Enterprise Resource Planning可以有效的提高企业管理的效率,使企业的资源得到整合,进而提高企业在成本控制方面的效率,增强了企业的核心竞争力,在现代企业中已经得到了广泛的证明和使用。

SAP系统是世界上最大的ERP系统中的一部分,具有高度的集成性和灵活性的特点[1]。

ABAP/4是专门针对R/3系统而开发的。

一、ABAP编程简介ABAP是高级业务应用编程语言——Advan-ced Business Application Programming的简称,目前已经发展到了第四代语言,通常用ABAP/4来表示第四代ABAP。

它是由SAP公司开发的一种主要应用在SAP/R3系统中的编程语言,它合并了所有通用的模块化的概念和控制结构,它支持结构化的程序设计,适合在应用程序的交互式开发中的应用。

它在语法上和Visual Basic和JAVA,SAP最初是为了解决财务数据处理的问题,现在已经应用到了编写SAP AG 的所有产品的源代码[2]。

它还支持面向对象的程序设计,具有比较好的数据库编程的性能。

同时,ABAP所具备的比较简单的调试环境可以在任何情况下测试代码的执行。

ABAP不仅可以作为程序员开发软件的工具,而且也是一个成熟稳定的开发平台。

它具有完整的client/server开发环境,其中包含了设计和开发程序、菜单、屏幕、功能模块等工具,还有程序的调试。

测试、性能和在线分析等实用的程序,可以满足开发人员的需要。

SAPABAP性能优化

SAPABAP性能优化
数据传输优化
减少数据传输量,提高数据处理速度。
程序缓存
合理使用程序缓存,减少重复计算和数据库访问。
多线程处理
利用多线程处理,提高程序执行效率。
报表性能优化
报表逻辑优化
简化报表逻辑,减少复杂计算和嵌套查询。
报表数据量控制
限制报表数据量,提高报表加载速度。
报表缓存
使用报表缓存,减少重复报表生成和数据查 询。
数据库查询优化
减少数据库访问次数
通过减少不必要的数据库查询和合并查询来 降低数据库负载,提高查询效率。
优化SQL语句
编写高效的SQL语句,避免使用低效的查询 方式。
使用索引
为经常查询的字段建立索引,加快查询速度。
数据库分区
将大表进行分区,提高查询和管理效率。
ABAP代码优化
减少程序逻辑复杂度
简化程序逻辑,减少嵌套层次,提高 代码执行效率。
分布式处理技术
使用分布式系统架构
通过分布式系统架构将系统负载分散到多个 节点上,提高系统处理能力和可靠性。
数据分片处理
将数据分散到多个节点上进行处理,提高数 据处理效率和并发处理能力。
分布式事务管理
实现分布式事务管理,确保数据一致性和可 靠性。
04
SAP ABAP性能优化的实践 与案例
数据库查询优化实践
什么是SAP ABAP性能优化
SAP ABAP性能优化是指通过一系列 技术手段和优化策略,提高SAP ABAP系统的运行效率,减少系统响 应时间,提升系统整体性能的过程。
它涉及对ABAP代码、数据库、系统 配置等多个方面的优化,以提高SAP 系统的整体性能和稳定性。
SAP ABAP性能优化的重要性
详细描述

浅谈ABAP程序的优化

浅谈ABAP程序的优化

浅谈ABAP程序的优化【摘要】影响ABAP程序运行效率的因素及相应的优化方法。

【关键词】ABAP;优化;查询;主键0.引言ABAP是Advanced Business Application Programming(高级商务应用程序)的缩写,它是一款基于SAP平台的编程语言,由德国SAP公司开发,主要用于SAP系统中报表程序的编写开发。

不同行业领域的用户在使用SAP系统时,会提出不同的报表需求,SAP的标准报表更侧重通用性,专业性能不强,这就需要应用ABAP语言为用户量身订做各个专业报表。

ABAP报表开发往往要基于SAP系统中自带的数据库表。

这些表都是SAP 系统创建好的,随着SAP系统的安装,这些表也被安装到了SAP服务器上。

ABAP 程序员没有对这些表的修改权限,只有使用(即select)权限,所以对于ABAP 程序员来说,如何在数以万计的数据库表中快速地提取有效的信息,并通过相关计算,把它们有序的排列出来,再展示给用户,才是关键。

1.优化方法想要优化ABAP程序,就必须清楚影响ABAP程序运行效率的因素及相应的优化方法。

笔者经过两年的切身实践,体会最深的有以下几点:1.1非主键和索引查询有很多用户都希望通过一些非主键或者索引的字段进行查询,这种查询的效率是很低的。

这就好比从一本字典中查找汉字却不使用检字法一样。

优化方法:程序员可以建议用户尽量使用主键或者索引进行查询。

如果有些情况确实需要非主键或者索引进行查询,那么可以借助中间表把非主键和索引转换成主键或者索引,再进行查询。

如用户想根据采购订单字段(EBELN)查询物料的收货情况,而物料凭证表(MSEG)中,EBELN既不是主键,也不是索引,那么在使用EBELN对MSEG表进行查询时,效率很低,那么我们可以借助表EKBE(采购凭证的收货记录表)作为中间表,因为EBELN字段在EKBE表中是第一个主键字段,这样取数效率就大大增加了。

1.2循环取数简单的说,就是对数据库表中的记录进行循环,把符合条件的记录取出来,每次只取一条。

ABAP编程中提高执行效率的几个技巧

ABAP编程中提高执行效率的几个技巧
个 可 以提 升 执 行 效 率 的 技 巧 。 1 尽 量不要用 句 。 S Ic -E d ee t 语 ee t n S lc
I TO TA BLE ia N t bl F0R ALL ENTRI I ES N ia t b2
W H ERE be nr = i a 一be n l t b2 lr
十 分 成 熟 、 应 用 广 泛 、 而 且 功 能 强 大 的 开 发 工 具 。 ABAP语 言 结 合 ABAP工 作 台 工
BI AR Y SEA RCH . N EN DL00P .
6 熟 悉实 际业 务 流程
开 发 人 员 要 尽 量 去 熟 悉 业 务 流 程 , 根 据 实 际 业 务 流 程 来 挖 掘 , 清 楚 地 了 解 系 统 数 据表 中的 数 据 是从 哪 一 步 操 作 得 来 的 , 表 之 间 又 都 有 什 么 关 系 。 丰 富 的 业 务 知 识 将非常有助于我 们的开发。 比 如 说 , 我 们 都 知 道 表 B e 是 一 个 簇 sg 表 , 它 是 由 6个 表 组 成 的 , 包 括 : ( ) 总 1 帐 :Bss ( 计 核 算 : 总 帐 科 目 的 次 级 索 i 会

引 ) s s( 计核 算 :总 帐科 目的第 二个 、B a 会 索 引 ( 结 算项 目 ) 已 );( 2)供 应商 :Bsk i ( 计 核 算 :供 应 商 的第 二 次 索 引) Bs k 会 a ( 计 核 算 : 供 应 商 的 第 二 个 索 引 ( 结 算 会 已 项 目) );( 3)客 户 :Bsd ( 计 核算 :供 i 会 应商 的第 二次 索 引) 、Bs d ( 计 核算 :客 a 会 户 的 第二 个 索 引 ( 结 算 项 目)) 已 这 样 , 当 业 务 人 员 提 出 要 开 发 银 行 存 款 日 记 账 时 , 根 据 业 务 知 识 , 这 只 涉 及 到

SAP-ABAP程序性能调优介绍

SAP-ABAP程序性能调优介绍
19
SAT程序性能跟踪分析
For User/Service
20
SAT程序性能跟踪分析
Evalute 显示分析结果
显示Net%最多的语句,双击显示代码
21
SAT程序性能跟踪分析
Tips & Tricks
特别是SQL和Internal Table
22
ST05 SQL Trace
按SQL语句汇总 Explain
查看扩展内存
查看CurUse和In Mem 查看Heap Memory 查看个人内存占用
双击Extended Memory -> 模式
11
ST04 数据库性能查看
Data Buffer Quality [%] > 99.5% Session Monitor 查看当前数据库session
In Dialog - 最常用
直接跟踪事务、程序和函数
In Parallel Session
直接跟踪某个Session
For User/Service
后台跟踪某个用户或者程序
15
SAT程序性能跟踪分析
测量精确性
高:对特定区域的高精度测量方式,降低测量错误的可能性,但测量时间会变短 低:测量时间及测试范围更大,但测试错误的可能性高
SQL优化
For all entries in
执行顺序 索引
正确的索引和字段顺序 正确的命中字段 大SQL/Hints
多进程处理
SAP用户与服务器交互过程
Pres. Server
SAP Application Server
Database Server
Network
Dispatcher Network

ABAP程序执行效率优化的研究

ABAP程序执行效率优化的研究

ABAP 程序执行效率优化的研究蒋文文(大庆石化公司信息技术中心大庆163000)摘要:ABAP(高级商业应用程序)语言是SAP 系统自带的一种开发语言,ABAP 程序设计在ERP(企业资源计划系统)实施过程起着重要的作用。

ABAP 程序的优劣直接影响企业对ERP 的应用。

研究了数据库效能优化和内表的优化。

其中内表在ABAP 程序中承担着重要的角色,重点研究了内表的类型、访问方式和内表连接,提出了基于内表的ABAP 程序优化方案。

对于内表连接,提出了一种改进的连接算法,提高了程序的时间复杂度,使程序的执行效率得到了成倍的提升,并在项目实施过程中获得了稳定的运行效果。

关键字:ABAP 语言;内表;SAP 系统;企业资源计划0 引言随着企业信息化建设的不断发展,SAP系统成为全球最大的ERP系统之一,但是由于企业间具有各自不同的需求。

标准的SAP系统往往无法满足特定行业的客户需求,尤其是一些企业特殊的流程和报表。

所以,需要开发一些程序来补充额外的需求,从而满足客户化定制的需求。

SAP系统本身自带了一种开发语言ABAP。

ABAP全称是Advanced Business Application Programming(高级商业应用程序),它是由SAP公司开发的一种编程语言,用于应用程序的交互式开发,属于第4 代编程语言[1]。

ABPA不仅是一个开发工具,而且是非常成熟和稳定的综合开发平台。

它是完全集成在R/3 系统中的,有一套完整的client/server开发环境,包括设计和开发程序、屏幕、菜单、功能模块等所需的一切工具,以及程序调试、性能和在线分析、测试所需的实用程序。

客户化定制开发主要分四大类[2]:(1)增强与修改:对R/3 系统标准的ABAP 程序、菜单、屏幕、数据表等进行调整,以满足特定的业务需求。

(2)报表:根据用户提供的查询条件,对数据进行查询和运算后在屏幕上展示结果集。

(3)表单:各类票据或凭证的输出。

ABAP程序运行效率

ABAP程序运行效率

ABAP程序运行效率ABAP程序运行效率(转)程序的效率是每个程序员都应该重视的,无论您是采用哪一种语言进行开发. 程序有时候越短,并不一定越快,有时候程序很多代码,但不一定会很慢. 性能是一把双刃剑, 获得时间效率的同时, 牺牲的是空间的开销. 这里提供一些建议以提高你的程序运行速度和减低系统荷载。

首先是尽量减少I/O操作,类似对硬盘的读写的I/O操作是最耗费时间的, 比如读写数据库。

以下是减少I/O操作的例子:1, 减少数据库DB的读写操作, 当使用VIEW视图的时候, 当被视图join的table有数据更新操作的时候, 同时系统也会更新到这个view里面, 使得它们之间的数据一样, 所以使用视图会对这些日常操作带来效率问题. 如果视图join的表多数是日常事物需要更新的事物数据表(如EKET), 就要避免使用视图.2, 避免使用SELECT *, 尽量使用SELECT A B C INTO TABLE ITAB 这样的语句。

这个操作会将所有符合条件的数据一次性地读进内表,这比在SELECT A B C INTO WA... APPEND... ENDSELECT的循环中添加数据到内表要快。

不用频繁的读DB.3, 避免频繁使用SELECT SINGLE语句, 特别是在LOOP和SELECT...ENDSELECT里面用, 应该把要读取的数据用SELECT FOR ALL ENTRIES IN 一次全部取得, 然后用READ TABLE WITH KEY ... BINARYSEARCH.虽然说操作内存比磁盘操作要高效,但是如果对内存的使用不加以控制,可能有些时候不得不对硬盘的交换空间操作, 这样就增加了对磁盘的I/O读写操作.正如下面所说:4, 当你定义内表的时候可以也会出现这样的问题, 比如你定义一个内表使用的是OCCURS 100,而不是OCCURS 0, 会导致内表长度大于100的时候,就会占用系统页面缓存。

SAP中ABAP程序优化

SAP中ABAP程序优化

SAP中ABAP程序优化摘要随着我们公司在业务上的飞速发展,公司信息中心对ERP技术支持的力度上也在不断加强,因为ERP数据库中的数据随着业务的发展相应的飞速增长,不可避免的,对在SAP中ABAP前、后台程序执行时间的要求越来越成为我们关注的焦点。

由于受客观原因的限制,使得所开发的ABAP程序不是最优的,所以要通过优化,缩短程序运行时间。

一般来说,程序的优化涉及程序的执行效率、安全性、可移植性等诸多方面,本文仅讨论ABAP报表执行效率方面的优化。

关键词SAP;ABAP;程序优化随着我们公司在业务上的飞速发展,公司信息中心对ERP技术支持的力度上也在不断加强,因为ERP数据库中的数据随着业务的发展相应的飞速增长,不可避免的,对在SAP中ABAP前、后台程序执行时间的要求越来越成为我们关注的焦点。

由于受客观原因的限制,使得所开发的ABAP程序不是最优的,所以要通过优化,缩短程序运行时间。

一般来说,程序的优化涉及程序的执行效率、安全性、可移植性等诸多方面,本文仅讨论ABAP报表执行效率方面的优化。

1 程序的效能分析一般来说,当一个程序执行时间超过100S时,该程序就使人不可忍受,就应该分析该程序的效能,判断是否可以优化设计。

首先找出有问题的程序,通过T-CODE:SE30或SM37进行查找,分析是后台执行的哪些程序慢。

例:ZFI002N资产负债表(新会计准则)。

根据图形对程序的执行进行分析,点左上角,可以查看详细的每条语句的执行效率,可以针对语句进行分析,如果语句执行时间过长,可以对语句或方法进行优化。

其次分析程序效能,选择事务码SE30,进行程序和SQL语句性能和效率的分析,找出程序慢的部分。

执行完程序可以区分3个阶段的执行时间:ABAP、数据库、R/3系统,这3个部份对效能的优先级为数据库Database->系统System->ABAP要依序排除程序这些部份的问题。

再次进行Database效能分析。

SAP_ABAP查询优化

SAP_ABAP查询优化

第 24 页
程序内存使用的优化-2
使用SELECT … PACKAGE SIZE n 分段查询数据,减低数据库缓存负担.
SELECT …… INTO TABLE itab PACKAGE SIZE 100 FROM VABK ……
该语句实现没次打开DB会话时, 往应用服务器上传输100条记录, 然后关闭会话, 刷新 缓存。 用于在数据库缓存资源紧缺的情况使用。
SELECT vbeln posnr INTO TABLE itab FROM vbak WHERE vbeln = p_vbeln.
Itab2 = itab1.
推荐
SELECT * INTO CORRESPONDING FIELDS OF TABLE itab FROM vbak
SELECT vbeln as fld1 posnr as fld2 INTO TABLE itab FROM vbak WHERE vbeln = p_vbeln.
第 5 页
减低CPU负载-1
使用WHERE条件减少循环次数.
SELECTION-OPTIONS: s_vbeln FOR vbak-vbeln.
减少循环次数可以减少CPU操作次数,减少操作时间
LOOP AT <itab>… WHERE …
LOOP AT itab. IF itab-vbeln IN s_vbeln. …… ENDIF. ENDLOOP.
不推荐
SELECT ebeln AS ekknebeln INTO TABLE it_ebeln FROM ekko WHERE ebeln = p_ebeln .
推荐
第 14 页
降低数据库负载-2
避免使用SELECT *.

如何提高ABAP程序运行效率

如何提高ABAP程序运行效率

如何提高ABAP程序运行效率中国石油测井有限公司钮顺摘要:ABAP的程序会需要花费大量的时间执行, 而且会使其它进程被迫暂停以等待当前程序运行结束。

本文通过对ABAP程序编写部分技巧的介绍,以及I/O操作,内存占用,CPU负载等方面介绍提高程序的运行效率。

关键词:ABAP,I/O操作,内存占用,CPU负载前言信息化建设对公司实现率先建成一流的社会主义现代化企业和具有国际竞争力的跨国公司的奋斗目标,具有十分重要的意义,当然企业资源的管理和合理的应用尤为重要,这样ERP系统集信息技术与先进的管理思想于一身,成为现代企业的运行模式,反映时代对企业合理调配资源,最大化地创造社会财富的要求,成为企业在信息时代生存、发展的基石。

一个系统的成功应用主要在于它是否适合应用的环境,这样就取决于系统的开发工作,而高效完善的程序是系统的基础。

1 概念1.1 ABAP高级业务应用编程(Advanced Business Application Programming)。

它是SAP开发设计的用于对SAP系统进行应用分析、二次开发的主要工具,是所有SAP应用的基础。

ABAP是一种支持结构化程序设计的语言,它合并了所有通常的控制结构和模块化概念,同时,它还支持面向对象的程序设计方法。

1.2 ABAP的特性ABAP/4 支持商业数据类型和操作。

您可以用特殊日期和时间字段进行计算。

系统会自动执行必需的类型转换。

ABAP/4 包含一个叫 Open SQL 的SQL子集。

用 Open SQL,您可以读取和访问数据库表,与所用的数据库系统无关。

ABAP/4 允许您定义和调用子程序。

也可以调用其他程序的子程序。

参数能够以各种方式从子程序传递或传递到子程序。

ABAP/4 包含一种特殊子程序,叫做功能模块。

您可以在中央库中创建和维护功能模块。

在调用程序和子程序之间功能模块有一个明确定义的数据接口。

它们能够以调用程序的独立模式进行分别测试。

ABAP/4 报表程序用于分析数据库表中的数据。

ABAP程序执行效率的优化

ABAP程序执行效率的优化

ABAP程序执行效率的优化
高卫红
【期刊名称】《扬子石油化工》
【年(卷),期】2006(021)006
【摘要】ABAP(高级商业应用程序)设计是企业资源计划系统(ERP)实施过程中必不可少的一环,ABAP程序的优劣直接影响企业对ERP的应用。

从程序设计的角度阐述了程序执行效率的分析手段,给出一些程序优化设计的方法。

【总页数】5页(P1-5)
【作者】高卫红
【作者单位】南京扬子石化信息技术有限责任公司
【正文语种】中文
【中图分类】TP317
【相关文献】
1.ABAP程序性能优化研究 [J], 姚振;郭骏;刘涛;张禾良;方志远
2.浅谈SAP系统ABAP程序性能优化 [J], 刘金才
3.浅谈SAP中ABAP程序的优化方法 [J], 孙勤
4.ABAP程序性能优化的研究及应用 [J], 邹玉龙;王昕磊
5.浅谈SAP中ABAP程序的优化方法 [J], 孙勤
因版权原因,仅展示原文概要,查看原文内容请购买。

如何提高ABAP程序性能

如何提高ABAP程序性能

如何提高ABAP程序性能预览说明:预览图片所展示的格式为文档的源格式展示,下载源文件没有水印,内容可编辑和复制影响程序性能的问题:ABAP Tuning1.Loop嵌套Select查询(多条)类别Loop内的Select查询Loop外使用Select查询说明在Loop内使用select查询时,因为按成为loop对象的Internal Table的记录数运行selec t的原因,Internal Table的记录数越大,时间成几何数增加。

右侧的代码在select中使用for all entries in,内部loop中使用sorted table, field symbol可以缩短时间。

代码DATA:gt_bkpf TYPE TABLE OF bkpf,gt_bseg TYPE TABLE OF bseg.DATA:gs_bkpf LIKE LINE OF gt_bkpf,gs_bseg LIKE LINE OF gt_bseg.SELECT * FROM bkpf INTOCORRESPONDING FIELDS OF TABLEgt_bkpf UP TO3000ROWS.LOOP AT gt_bkpf INTO gs_bkpf.SELECT * FROM bseg INTOCORRESPONDING FIELDS OF TABLEgt_bseg WHEREbukrs = gs_bkpf-bukrs ANDbelnr = gs_bkpf-belnr ANDgjahr = gs_bkpf-gjahr.* .....ENDLOOP.DATA:gt_bkpf TYPE TABLE OF bkpf,gt_bkpf_tmp LIKE gt_bkpf,gt_bseg TYPE SORTED TABLE OF bsegWITH UNIQUE KEY bukrs belnr gjahr buzei,gt_bseg_tmp LIKE gt_bseg.DATA:gs_bkpf LIKE LINE OF gt_bkpf,gs_bseg LIKE LINE OF gt_bseg.FIELD-SYMBOLS :LIKE gs_bkpf,LIKE gs_bseg.SELECT bukrs belnr gjahr INTO CORRESPONDING FIELDS OF TABLE gt_ bkpfFROM bkpf UP TO3000ROWS.gt_bkpf_tmp = gt_bkpf.DELETE ADJACENT DUPLICATES FROM gt _bkpf_tmpCOMPARING bukrs belnr gjahr. SELECT bukrs belnr gjahr buzei buzidINTO CORRESPONDING FIELDS OF TABLE gt_bsegFROM bsegFOR ALL ENTRIES IN gt_bkpf_tmpWHERE bukrs = gt_bkpf_tmp-bukrs ANDbelnr = gt_bkpf_tmp-belnr ANDgjahr = gt_bkpf_tmp-gjahr.2.Loop嵌套Select查询(单条)类别Loop内的Select查询Loop外查询说明如果从Loop内部带来的记录是一个一个的,使用read table把对象InternalTable声明成h ashed table。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

以下是我在网上看到的一篇关于ABAP程序优化的文章,觉得非常不错,对今后的开发很有帮助,拿出来跟大家分享一下。

原文:
程序的效率是每个程序员都应该重视的,无论是采用的哪一种语言进行开发.
在我做过的一个项目中,一个几万条数据的运行,在没有考虑效率,对代码没有进行优化前的运行时间是7个小时,当对代码进行一系列的优化修改后,运行的时间就只剩一个小时,由此可见,代码的优化是多么的重要。

那么,我们在写ABAP程序时,怎样的语句才能提高到效率呢,下面是我总结到的几点:
1、抽取数据时,避免使用SELECT *, 尽量使用SELECT A B INTO TABLE ITAB这样的语句。

2、不要使用SELECT...ENDSELECT语句。

3、尽量避免在LOOP中访问数据库。

可以在之前先把数据取到内表,在LOOP中用READ TABLE WITH KEY ... BINARY SEARCH.进行读取对应的数据。

4、用SORT代替ORDER BY。

5、避免使用嵌套的循环。

6、尽量不要使用JOIN进行多表连接。

把一个表的数据先取到内表,然后使用FOR ALL ENTRIES语句再进行抽取。

7、使用二分查找法。

READ TABLE的之前使用SORT TABLE BY对内表进行排序, 然后使用READ TABLE WITH KEY ...BINARY SEARCH.
8、避免使用SELECT DISTINCT语句。

在抽取数据到内表后用DELETE ADJACENT DUPLICATES语句来消除重复行。

9、尽量加多WHERE语句进行条件抽取。

以上,说的还不全,会进行不断更新。

另外,可以通过TCODE:ST05 SE30 进行程序和SQL语句性能和效率的分析。

相关文档
最新文档