<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ABAP query optimization in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-query-optimization/m-p/12222558#M1983733</link>
    <description>&lt;P&gt;Perfect. Your answer is exactly what I need. You gave me a solution with a surgical precision.&lt;/P&gt;&lt;P&gt; Thank you so much. God bless you.&lt;/P&gt;</description>
    <pubDate>Mon, 26 Oct 2020 13:53:20 GMT</pubDate>
    <dc:creator>former_member693168</dc:creator>
    <dc:date>2020-10-26T13:53:20Z</dc:date>
    <item>
      <title>ABAP query optimization</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-query-optimization/m-p/12222554#M1983729</link>
      <description>&lt;P&gt;Hi to all.&lt;/P&gt;
  &lt;P&gt;I must optimize the following loop and query, it is making exactly what I need, but I need make it by the fastest way. How can I do it by the fastest way with maximum performance?&lt;/P&gt; 
  &lt;PRE&gt;&lt;CODE&gt;DATA wa_budat TYPE CHVW-BUDAT.

LOOP AT T_SHADOW ASSIGNING FIELD-SYMBOL(&amp;lt;FS_T_SHADOW&amp;gt;) WHERE MENGE IS NOT INITIAL.
  CLEAR wa_budat.

  SELECT SINGLE
    MAX( BUDAT )
  INTO wa_budat
  FROM
     CHVW
  WHERE
    WERKS = &amp;lt;FS_T_SHADOW&amp;gt;-WERKS
    AND MATNR = &amp;lt;FS_T_SHADOW&amp;gt;-MATNR
    AND CHARG = &amp;lt;FS_T_SHADOW&amp;gt;-CHARG
    AND
    (
      AUFNR = &amp;lt;FS_T_SHADOW&amp;gt;-AUFNR
      AND EBELN = &amp;lt;FS_T_SHADOW&amp;gt;-EBELN AND EBELP = &amp;lt;FS_T_SHADOW&amp;gt;-EBELP
      AND KDAUF = &amp;lt;FS_T_SHADOW&amp;gt;-KDAUF AND KDPOS = &amp;lt;FS_T_SHADOW&amp;gt;-KDPOS
      AND VBELN = &amp;lt;FS_T_SHADOW&amp;gt;-VBELN AND POSNR = &amp;lt;FS_T_SHADOW&amp;gt;-POSNR
    )
    AND XSTBW EQ abap_false.

  IF sy-subrc EQ 0.
    &amp;lt;FS_T_SHADOW&amp;gt;-ZZBUDAT = wa_budat.
  ENDIF.
ENDLOOP.
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 23 Oct 2020 20:12:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-query-optimization/m-p/12222554#M1983729</guid>
      <dc:creator>former_member693168</dc:creator>
      <dc:date>2020-10-23T20:12:27Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP query optimization</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-query-optimization/m-p/12222555#M1983730</link>
      <description>&lt;P&gt;Try not to SELECT within LOOP. Select all relevant data before looping with SELECT FOR ALL ENTRIES.&lt;/P&gt;</description>
      <pubDate>Fri, 23 Oct 2020 21:04:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-query-optimization/m-p/12222555#M1983730</guid>
      <dc:creator>lumirion</dc:creator>
      <dc:date>2020-10-23T21:04:39Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP query optimization</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-query-optimization/m-p/12222556#M1983731</link>
      <description>&lt;P&gt;Don't forget to do performance tests before and after change.&lt;/P&gt;&lt;P&gt;Of course, SELECT inside a loop is prohibited as a rule-of-thumb.&lt;/P&gt;&lt;P&gt;I see that you have MAX, so you can't use FOR ALL ENTRIES.&lt;/P&gt;&lt;P&gt;You may create a temporary database table to contain the internal table T_SHADOW, with columns WERKS, MATNR, CHARG, AUFNR, EBELN, etc.&lt;/P&gt;&lt;P&gt;With a Global Temporary Table (GTT), its content is deleted after COMMIT and concurrency is managed.&lt;/P&gt;&lt;P&gt;I think that you may also join directly with the internal table passed to a database procedure (AMDP/SQL Script).&lt;/P&gt;&lt;P&gt;All these possibilities depend on your ABAP version.&lt;/P&gt;</description>
      <pubDate>Sat, 24 Oct 2020 13:08:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-query-optimization/m-p/12222556#M1983731</guid>
      <dc:creator>Sandra_Rossi</dc:creator>
      <dc:date>2020-10-24T13:08:21Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP query optimization</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-query-optimization/m-p/12222557#M1983732</link>
      <description>&lt;P&gt;Hello  &lt;SPAN class="mention-scrubbed"&gt;mrrjesus&lt;/SPAN&gt; &lt;/P&gt;&lt;P&gt;For one, you should try to provide a value for XZUGA field, as it's the first field of the primary key of the table. It will greatly increase the performance.&lt;/P&gt;&lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/attachments/1855577-chvw-key.png" /&gt;&lt;/P&gt;&lt;P&gt;Other thing would be to provide a value for the AUFPS field, for the same reason as above.&lt;/P&gt;&lt;P&gt;Now, as to the implementation, you could do as Sandra proposed (temporary table or AMDP procedure). You can also try to do it in &lt;EM&gt;plain&lt;/EM&gt; ABAP like shown below.&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;DATA(lt_shadow) = t_shadow[].
DELETE lt_shadow WHERE menge IS INITIAL.

SELECT werks, matnr, charg, aufnr, ebeln, ebelp, kdauf, kdpos, vbeln, posnr, budat
  FROM chvw
  FOR ALL ENTRIES IN @lt_shadow
  WHERE WERKS = @lt_shadow-werks
    AND MATNR = @lt_shadow-matnr
    AND CHARG = @lt_shadow-charg
    AND AUFNR = @lt_shadow-aufnr " brackets not needed for AND
    AND EBELN = @lt_shadow-ebeln 
    AND EBELP = @lt_shadow-ebelp
    AND KDAUF = @lt_shadow-kdauf 
    AND KDPOS = @lt_shadow-kdpos
    AND VBELN = @lt_shadow-vbeln 
    AND POSNR = @lt_shadow-posnr
    AND XSTBW = @abap_false
  INTO TABLE @lt_chvw.

SORT lt_chvw BY werks matnr charg aufnr ebeln ebelp kdauf kdpos vbeln posnr budat DESCENDING.

LOOP AT t_shadow REFERENCE INTO DATA(ld_shadow)
  WHERE menge IS NOT INITIAL.

  READ TABLE lt_chvw REFERENCE INTO DATA(ld_chvw)
    BINARY SEARCH
    WITH KEY werks = ld_shadow-&amp;gt;werks
             matnr = ld_shadow-&amp;gt;matnr
             charg = ld_shadow-&amp;gt;charg
             aufnr = ld_shadow-&amp;gt;aufnr
             ebeln = ld_shadow-&amp;gt;ebeln
             ebelp = ld_shadow-&amp;gt;ebelp
             kdauf = ld_shadow-&amp;gt;kdauf
             kdpos = ld_shadow-&amp;gt;kdpos
             vbeln = ld_shadow-&amp;gt;vbeln
             posnr = ld_shadow-&amp;gt;posnr.
  CHECK sy-subrc = 0.
  ld_shadow-&amp;gt;zzbudat = ld_chvw-&amp;gt;budat.
ENDLOOP.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Kind regards,&lt;/P&gt;Mateusz</description>
      <pubDate>Sat, 24 Oct 2020 18:01:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-query-optimization/m-p/12222557#M1983732</guid>
      <dc:creator>MateuszAdamus</dc:creator>
      <dc:date>2020-10-24T18:01:31Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP query optimization</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-query-optimization/m-p/12222558#M1983733</link>
      <description>&lt;P&gt;Perfect. Your answer is exactly what I need. You gave me a solution with a surgical precision.&lt;/P&gt;&lt;P&gt; Thank you so much. God bless you.&lt;/P&gt;</description>
      <pubDate>Mon, 26 Oct 2020 13:53:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-query-optimization/m-p/12222558#M1983733</guid>
      <dc:creator>former_member693168</dc:creator>
      <dc:date>2020-10-26T13:53:20Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP query optimization</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-query-optimization/m-p/12222559#M1983734</link>
      <description>&lt;P&gt;Thank you. Your strategy is what I need.&lt;/P&gt;</description>
      <pubDate>Mon, 26 Oct 2020 16:52:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-query-optimization/m-p/12222559#M1983734</guid>
      <dc:creator>former_member693168</dc:creator>
      <dc:date>2020-10-26T16:52:14Z</dc:date>
    </item>
  </channel>
</rss>

