Improve loop performance with select

It is common for programmers to use SELECT * FROM TABLE and not specify a field list. This is not always a good idea.

It is common for programmers to use SELECT * FROM TABLE and not specify a field list. This is not a problem when doing just a single select. However, processing times can be very long when the instruction is in a loop. Solution: Specify the needed fields in the select instruction.


Wrong:

DATA: TA_MARA TYPE STANDARD TABLE OF MARA.
LOOP AT DATA_PACKAGE.
  SELECT SINGLE * INTO CORRESPONDING FIELDS OF TA_MARA FROM MARA WHERE MATNR = DATA_PACKAGE-MARA.
* Perform process with only some fields of MARA
* .....

ENDLOOP.
*-----------------------
Right:
DATA: BEGIN OF TA_MARA ,
         MATNR LIKE MARA-MATNR ,
         MATKL LIKE MARA-MATKL ,
      END OF TA_MARA.
               
LOOP AT DATA_PACKAGE.
  SELECT SINGLE * INTO CORRESPONDING FIELDS OF TA_MARA FROM MARA WHERE MATNR = DATA_PACKAGE-MARA.
* Perform process with only some fields of MARA
* .....

ENDLOOP.


Right option has proved to greatly reduce processing times in user-exits and data loading into BW 2.1c (sometimes lazy programming is very costly).

This was first published in August 2002

Dig deeper on SAP ABAP

Pro+

Features

Enjoy the benefits of Pro+ membership, learn more and join.

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

-ADS BY GOOGLE

SearchManufacturingERP

SearchOracle

SearchDataManagement

SearchAWS

SearchBusinessAnalytics

SearchCRM

SearchContentManagement

SearchFinancialApplications

Close