Problem solve Get help with specific problems with your technologies, process and projects.

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

Dig Deeper on SAP ABAP

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.

-ADS BY GOOGLE

SearchERP

SearchOracle

SearchDataManagement

SearchAWS

SearchBusinessAnalytics

SearchContentManagement

SearchHRSoftware

Close