1、使用where语句
不推荐
Select * from zflight.
Check : zflight-airln = ‘LF’ and zflight-fligh = ‘BW222’.
Endselect.
推荐
Select * from zflight where airln = ‘LF’ and fligh = ‘222’.
Endselect.
2、使用聚合函数
不推荐
Maxnu = 0.
Select * from zflight where airln = ‘LF’ and cntry = ‘IN’.
Check zflight-fligh > maxnu.
Maxnu = zflight-fligh.
Endselect.
推荐
Select max( fligh ) from zflight into maxnu where airln = ‘LF’ and cntry = ‘IN’.
3、使用视图代替基本表查询
不推荐
Select * from zcntry where cntry like ‘IN%’.
Select single * from zflight where cntry = zcntry-cntry and airln = ‘LF’.
Endselect.
推荐
Select * from zcnfl where cntry like ‘IN%’ and airln = ‘LF’.
Endselect.
4、使用INTO table 代替select endselect
不推荐
Refresh: int_fligh.
Select * from zflight into int_fligh.
Append int_fligh. Clear int_fligh.
Endselect.
推荐
Refresh: int_fligh.
Select * from zflight into table int_fligh.
5、使用批量修改内表代替逐行修改
不推荐
Loop at int_fligh.
If int_fligh-flag is initial.
Int_fligh-flag = ‘X’.
Endif.
Modify int_fligh.
Endloop.
推荐
Int_fligh-flag = ‘X’.
Modify int_fligh transporting flag where flag is initial.
6、使用二分法查询,提高查询内表数据速度
不推荐
Read table int_fligh with key airln = ‘LF’.
推荐
Read table int_fligh with key airln = ‘LF’ binary search.
7、两个内表添加使用批量增加代替逐行
不推荐
Loop at int_fligh1.
Append int_fligh1 to int_fligh2.
Endloop.
推荐
Append lines of int_fligh1 to int_fligh2.
8、使用table buffering
Use of buffered tables is recommended to improve the performance considerably. The buffer is bypassed while using the following statements
Select distinct
Select … for update
Order by, group by, having clause
Joins
Use the Bypass buffer addition to the select clause in order to explicitly bypass the buffer while selecting the data.
9、 使用FOR ALL Entries
不推荐
Loop at int_cntry.
Select single * from zfligh into int_fligh
where cntry = int_cntry-cntry.
Append int_fligh.
Endloop.
推荐
Select * from zfligh appending table int_fligh
For all entries in int_cntry
Where cntry = int_cntry-cntry.
10、正确地使用where语句,使查询能使用索引
When a base table has multiple indices, the where clause should be in the order of the index, either a primary or a secondary index
To choose an index, the optimizer checks the field names specified in the where clause and then uses an index that has the same order of the fields. One more tip is that if a table begins with MANDT, while an index does not, there is a high possibility that the optimizer might not use that index.
11、正确地使用MOVE语句
Instead of using the move-corresponding clause it is advisable to use the move statement instead. Attempt should be made to move entire internal table headers in a single shot, rather than moving the fields one by one.
12、正确地使用inner join
Let us take an example of 2 tables, zairln and zflight. The table zairln has the field airln, which is the airline code and the field lnnam, which is the name of the airline. The table zflight has the field airln, the airline code and other fields which hold the details of the flights that an airline operates.
Since these 2 tables a re logically joined by the airln field, it is advisable to use the inner join.
Select a~airln a~lnnam b~fligh b~cntry into table int_airdet
From zairln as a inner join zflight as b on a~airln = b~airln.
In order to restrict the data as per the selection criteria, a where clause can be added to the above inner join.
13、使用sort by 代替order by
14、避免使用SELECT DISTINCT语句
使用的 ABAP SORT + DELETE ADJACENT DUPLICATES 代替.
分享到:
相关推荐
SAP ABAP 程序性能调优介绍 SAP ABAP 程序性能调优是指通过对程序的优化来提高 SAP 系统的性能。性能调优是 SAP 系统管理员和开发人员的重要任务之一,因为它可以直接影响到用户的体验和业务的效率。 用户交互过程...
### ABAP程序性能优化 #### 引言 在企业级应用开发中,SAP ABAP是一种广泛使用的编程语言。为了确保应用程序能够高效运行并提供良好的用户体验,开发者必须掌握一定的性能优化技巧。本文将深入探讨一系列关于ABAP...
SAP ABAP 程序性能调优介绍 SAP ABAP 程序性能调优是指通过对 SAP ABAP 程序的优化,以提高程序的执行效率和响应速度,从而提高用户体验和系统性能。本文将详细介绍 SAP ABAP 程序性能调优的技术创新、用户交互过程...
作为一名合格的ABAP开发者,提高ABAP程序的性能是非常必要的。本文将向您介绍10种提高ABAP性能的解决办法。 1. loop 循环中不要用 select 在ABAP程序中,loop 循环经常被用来处理大量数据。但是,如果在loop 循环...
在进行ABAP程序性能优化时,除了使用SE30外,还应结合其他SAP工具,如ST05(SQL Trace)、ST01(CPU Time Trace)和ST09(DB Monitor),以获得更全面的性能分析。通过这些工具,开发者能够深入理解程序运行过程,找...
1. **避免无谓的数据库访问**:数据库查询是ABAP程序中的性能瓶颈之一。优化SQL语句,减少不必要的JOIN操作,使用索引,以及正确使用SELECT-OPTIONS可以显著提高查询速度。 2. **利用集操作**:使用集操作(如...
深入ABAP程序设计,探索其在SAP R/3系统中的关键作用与实践,是IT专业人士尤其是SAP开发者的重要学习方向。ABAP(高级商业应用编程语言)是SAP R/3系统的核心编程语言,其设计与应用覆盖了从数据库访问、业务逻辑...
为了提高ABAP程序的执行效率,确保系统响应时间和资源利用率达到最佳状态,制定一套有效的ABAP代码性能指导原则显得尤为重要。 #### 二、代码性能优化关键点 ##### 1. 使用FORALL ENTRIES与表驱动 - **确保驱动表...
SAP ABAP 性能调优开发教程旨在帮助开发者提高ABAP程序的性能,提高系统的响应速度和稳定性。该课程涵盖了ABAP性能调优的基本概念、性能优化技术、性能监控和分析工具等方面的知识。 课程概述 本课程主要面向SAP ...
以下是对标题“ABAP程序优化方法”以及描述中涉及知识点的详细阐述: 1. **代码分析与性能监控**: ABAP开发人员可以通过事务代码如`ST05`(SQL Trace)或`SE30`(Program Benchmark)来监控和分析程序执行效率。...
在ABAP程序的编写过程中,数据类型的定义是非常基础且重要的一个环节。文档详细解释了ABAP基本数据类型(Elementary Data Types),变量的声明(Declaring Variables),定义常量(Declaring Constants)以及用户...
详解使用SAT对ABAP程序进行性能分析视频教程
以下是一些关于提高ABAP程序性能的关键点和实用技巧: 1. **合理的数据库索引**:为频繁搜索的字段创建索引可以显著提高查询速度。索引使得数据库能够快速定位到所需数据,避免全表扫描。 2. **采用存在的索引表**...
"abap xlsx2 demo 程序"是一个示例项目,旨在展示如何在SAP系统中读取和写入Excel文件。在这个程序中,开发者可能使用了特定的库或者自定义开发的函数来实现与Excel的交互。 首先,要理解ABAP如何处理.xlsx文件,...
然后详细讲解了内部表、选择屏幕、数据库通信、Open SQL和Native SQL的使用,这些都是编写高效ABAP程序的关键。此外,书中还涉及到了函数模块、类和对象的面向对象编程,以及增强和接口技术,这些是实现模块化和复用...
开发人员无需显式管理内存,但应了解内存使用原则,以优化程序性能。 数据定义: 1. **数据类型和数据对象**:在ABAP中,数据类型定义了数据对象的属性,包括存储空间大小、数据格式和可能的值范围。数据对象则是...
1. **实例化Proxy对象**:在ABAP程序中,首先需要创建Proxy类的实例。 2. **参数设置**:根据服务接口的要求,设置调用所需的输入参数。 3. **调用方法**:通过Proxy对象调用相应的方法执行服务。 4. **处理返回结果...
以下将详细介绍ABAP程序设计的一些核心知识点。 1. **基本概念** - **ABAP Workbench**:它是SAP开发环境的基石,包括事务码(Transaction Code)、Repository(存储库)、Development Workbench等,用于编写、...
在SAP系统中,ABAP程序的运行效率对系统的整体性能有着至关重要的影响。因此,了解如何提高ABAP程序的运行效率是非常必要的。本文将从ABAP程序的编写技巧、I/O操作、内存占用、CPU负载等方面来介绍提高ABAP程序运行...
优化ABAP程序是一个持续的过程,需要结合实际业务需求和系统性能状况灵活调整策略。同时,代码的可读性和可维护性也非常重要,不应为了追求性能而牺牲代码质量。在进行优化时,应充分考虑程序的复杂性和未来可能的...