Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Performance Tuning

Former Member
0 Likes
681

Dear All

Please help me to improve the performance  of below code.

  LOOP AT i_ecase INTO wa_ecase.

    CALL FUNCTION 'Z_FM24_FALNR_TO_ZUONR'

         EXPORTING

              falnr = wa_ecase-falnr

              lfdnr = wa_ecase-lfdnr

              einri = wa_ecase-bukrs                        "SHS3

         IMPORTING

              zuonr = wa_zuonr.

*<<<SHS5 INSERT

    IF old_zuonr = wa_zuonr AND old_kunnr = wa_ecase-kunnr.

      CONTINUE.

    ELSE.

      MOVE wa_zuonr TO old_zuonr.

      MOVE wa_ecase-kunnr TO old_kunnr.

    ENDIF.

*<<<SHS5 END OF INSERT

*<<< SHS4

    REFRESH patient.

    CALL FUNCTION 'Z_FM32_ACTIVE_PATIENT'

         EXPORTING

              i_patnr    = wa_ecase-kunnr

              i_inactive = 'X'

         IMPORTING

              e_patnr    = patient_active

         TABLES

              et_kunnr   = patient.

*<<< SHS4

    SELECT bkpf~bukrs bseg~zuonr bseg~kunnr bkpf~belnr

           bkpf~gjahr bseg~xblnr bkpf~budat bkpf~blart

           bseg~dmbtr bseg~hkont bseg~shkzg

           bseg~cpudt                                    "ECC1 insert

      FROM ( bsid AS bseg INNER JOIN

             bkpf AS bkpf ON

             bseg~bukrs = bkpf~bukrs AND

             bseg~belnr = bkpf~belnr AND

             bseg~gjahr = bkpf~gjahr )

    APPENDING CORRESPONDING FIELDS OF TABLE i_paydoc

        WHERE bseg~bukrs = bukrs_in AND

              bseg~zuonr = wa_zuonr AND

*              bseg~kunnr = wa_ecase-kunnr and  "SHS4

              bseg~kunnr IN patient AND                     "SHS4

              bseg~cpudt IN budat_in AND

              bseg~blart IN i_paydoctype_rg AND

              bkpf~stblg = space AND

              bkpf~bstat = space.

    SELECT bkpf~bukrs bseg~zuonr bseg~kunnr bkpf~belnr

           bkpf~gjahr bseg~xblnr bkpf~budat bkpf~blart

           bseg~dmbtr bseg~hkont bseg~shkzg

           bseg~cpudt                                        "ECC1 insert

      FROM ( bsad AS bseg INNER JOIN

             bkpf AS bkpf ON

             bseg~bukrs = bkpf~bukrs AND

             bseg~belnr = bkpf~belnr AND

             bseg~gjahr = bkpf~gjahr )

    APPENDING CORRESPONDING FIELDS OF TABLE i_paydoc

        WHERE bseg~bukrs = bukrs_in AND

              bseg~zuonr = wa_zuonr AND

*              bseg~kunnr = wa_ecase-kunnr and  "SHS4

              bseg~kunnr IN patient AND                     "SHS4

              bseg~cpudt IN budat_in AND

              bseg~blart IN i_paydoctype_rg AND

              bkpf~stblg = space AND

              bkpf~bstat = space.

  ENDLOOP.

1 ACCEPTED SOLUTION
Read only

former_member202771
Contributor
0 Likes
637

Hi,

For select statements, Use them outside loop. Use primary/secondary indexes.

For FMs, use parallel processing.

Thanks,

Anil

3 REPLIES 3
Read only

former_member249399
Active Participant
0 Likes
637

HI,


Use select statement outside loop.

Read only

FredericGirod
Active Contributor
0 Likes
637

Hi,

did you have tried to make an SQL trace and look for the Analyse of the SELECT statement ? We can't imagine witch Index has been created on your system. It's an analyse only valid for your system.

regards

Fred

Read only

former_member202771
Contributor
0 Likes
638

Hi,

For select statements, Use them outside loop. Use primary/secondary indexes.

For FMs, use parallel processing.

Thanks,

Anil