Quantcast
Channel: SCN : All Content - ABAP for SAP HANA
Viewing all articles
Browse latest Browse all 831

Performance Tuning Example 4(using a COUNT in the LOOP)

$
0
0

Source code below is an example of using count in the loop.


REPORT ZHIS_TUN_004_BEFORE.

 

DATA: BEGIN OF IT_EKKO OCCURS 0 ,

              EBELN LIKE EKKO-EBELN,

              LIFNR LIKE EKKO-LIFNR,

              ITEM_CNT TYPE I,

           END OF IT_EKKO .

 

DATA: BEGIN OF IT_EKPO OCCURS 0,

              EBELN LIKE EKPO-EBELN,

           END OF IT_EKPO.

 

SELECT EBELN INTO CORRESPONDING FIELDS OF TABLE IT_EKKO

FROM EKKO.

 

SORT IT_EKKO BY EBELN.

 

SELECT EBELN INTO CORRESPONDING FIELDS OF TABLE IT_EKPO

FROM EKPO.

 

SORT IT_EKPO BY EBELN.

 

LOOP AT IT_EKKO.

   CLEAR: IT_EKKO-ITEM_CNT.

 

   LOOP AT IT_EKPO WHERE EBELN = IT_EKKO-EBELN.

                   IT_EKKO-ITEM_CNT = IT_EKKO-ITEM_CNT + 1.

   ENDLOOP.

 

   IF IT_EKKO-ITEM_CNT EQ 0.

      DELETE IT_EKKO.

      CONTINUE.

   ENDIF.

 

ENDLOOP.

 

WRITE:/ LINES( IT_EKKO ) .

 

 

The results of analysis of the source code of the above in RUNTIME ANALYSIS are as follows:

 

img_4_1.JPG

 

It took most of the work time in the ‘Internal Processing Blocks'

 

For change of data in the loop is large, performance is low.

 

The following is the source code that use 'JOIN' in order to improve this.

 

REPORT ZHIS_TUN_004_AFTER.

TABLES: EKKO,

                EKPO.

 

DATA: BEGIN OF IT_EKKO OCCURS 0 ,

               EBELN LIKE EKKO-EBELN,

               LIFNR LIKE EKKO-LIFNR,

               ITEM_CNT TYPE I,

            END OF IT_EKKO .

 

DATA: BEGIN OF IT_EKPO OCCURS 0,

               EBELN LIKE EKPO-EBELN,

            END OF IT_EKPO.

 

SELECT A~EBELN COUNT(*) AS ITEM_CNT

INTO CORRESPONDING FIELDS OF TABLE IT_EKKO

FROM EKKO AS A JOIN EKPO AS B ON B~EBELN = A~EBELN

GROUP BY A~EBELN.

 

WRITE:/ LINES( IT_EKKO ) .

 

img_4_2.JPG

 

If possible, after processing in the database, Bring only the results of value


Viewing all articles
Browse latest Browse all 831

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>