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’.


返回文章目录

Leave a Reply

Your email address will not be published.