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 issue in two table join

former_member219850
Participant
0 Likes
399

Perfprmance of below query is very poor ..


I have already implemented for all entries logic, but it gives incorrect output which is not useful.


Please suggest any other solution.



SELECT vbak~vbeln vbak~qmnum aufk~aufnr aufk~objnr aufk~waers

       FROM ( vbak INNER JOIN aufk ON

            ( vbak~vbeln = aufk~kdauf ) )

       INTO CORRESPONDING FIELDS OF TABLE gt_order

          FOR ALL ENTRIES IN  gt_qmel_qmih

        WHERE qmnum gt_qmel_qmih-qmnum.


previous logic:-

SELECT vbeln aufnr qmnum

        FROM vbak

        INTO TABLE gt_vbak

        FOR ALL ENTRIES IN gt_qmel_qmih

    WHERE  qmnum = gt_qmel_qmih-qmnum AND

           vbeln = gt_qmel_qmih-vbeln.

    IF sy-subrc EQ 0.

      SORT gt_vbak BY qmnum.

    ENDIF.

    IF NOT gt_vbak[] IS INITIAL.

      SELECT aufnr objnr waers

        FROM aufk

        INTO TABLE gt_aufk1

        FOR ALL ENTRIES IN gt_vbak

        WHERE kdauf EQ gt_vbak-vbeln AND

              aufnr EQ gt_vbak-aufnr.

      IF sy-subrc EQ 0.

      ENDIF.

endif.

1 REPLY 1
Read only

0 Likes
369

Is there an index on QMNUM field in VBAK? Is there an index on KDAUF field in AUFK?. If there no indexes on those fields, your query will definitely be slower irrespective of whether you use for all entries or not. Do a sql trace using ST05 and check what index is being used.