SAP ABAP 性能优化技巧 — 选择条件

在从数据库中读取数据时最好直接在select语句中加入选择条件,从而直接限制筛选出符合条件的数据,而不建议读出所有的数据然后用ABAP代码来过滤筛选。 例如,不建议使用: Select * from zflight. Check : zflight-airln = ‘LF’ and zflight-fligh = ‘BW222’. Endselect. 建议使用: Select * from zflight where airln = ‘LF’ and fligh = ‘222’. Endselect. 这里还要提醒的一点是关于 select *。通常这是一个懒惰的做法,程序员使用select * 的时候其实可能只有一两个字段需要选择。这实际上会显著减慢程序的运行速度,并在整个系统上加载不必要的负担。当应用服务器将这个请求发送到数据库服务器的时候,数据库服务器不得不将每一行数据的整个结构都发送回应用服务器。这样既浪费CPU,又浪费网络带宽资源,尤其是在表结构很大的时候。 因此建议只选择那些需要的字段,以便使数据库服务器只传递少量数据回来。 另外还建议尽量避免将选择的数据字段逐个写入本地变量中,这也会加重服务的负担。比较好的做法应该是直接将读取的数据写入内表(internal table)中,例如: Select * from zflight into table it_flights where airln = ‘LF’ and fligh = ‘222’. 返回文章目录

SAP ABAP 性能优化技巧

本文译自 theSpot4SAP.com的SAP ABAP Performance Tuning Tips & Tricks Introduction 性能优化的必要性 ABAP是SAP编程中的通用语言。在很多工程项目中,一个重要的任务都是尽快组建一支ABAP程序员队伍,将设计文档交给他们,然后在计划工期之内完成ABAP程序的编写。 在这种期限的压力之下,往往程序的效率就被忽略了。一个有效的程序应该能够在有限的时间内产生要求的输出,时间的长短取决于程序的复杂度,而不是像我们常常听到的那样,开始运行一个程序然后午饭回来后再看结果。 也许以上说法有些夸张,但一个性能优化的ABAP程序的确可以为终端用户节省时间,从而增加用户的产量,反过来也取悦了用户和管理者。 这个教程着重介绍各种性能优化的技巧使得ABAP的程序可以更加有效的完成它们的工作。教程面向已熟练掌握ABAP各种概念和语法的编程人员。 说明:程序的性能很多时候也是受到硬件的限制,这些不在本文的讨论范围之内。 ======================================================================= 本教程分为以下几章,每一章介绍一种技巧: 教程简介 (本页) 选择条件 (Selection criteria) 集合函数 (Aggregate functions) 视图取代基本表 (Views instead of base tables) “into table” 语句 (The “into table” clause) 修改一组纪录 (Modifying a group of lines) 使用二分查找选项 (Use of binary search option) 向内表添加纪录 (Appending two internal tables) 缓存表 (Table buffering) […]