<?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: How to optimize code and Improve performance in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458690#M1250773</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN __default_attr="pink" __jive_macro_name="color"&gt;&lt;SPAN __default_attr="30" __jive_macro_name="size"&gt;u2665Yesu2665&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN __jive_emoticon_name="wink"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 20 Apr 2009 11:50:27 GMT</pubDate>
    <dc:creator>ThomasZloch</dc:creator>
    <dc:date>2009-04-20T11:50:27Z</dc:date>
    <item>
      <title>How to optimize code and Improve performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458682#M1250765</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is there any way to improve the performance and optimize the coding.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;SELECT mblnr mjahr zeile mat_kdauf mat_kdpos matnr kdauf kdpos menge
       FROM mseg INTO CORRESPONDING FIELDS OF TABLE imseg
         FOR ALL ENTRIES IN itab
           WHERE bwart IN ('309', '311', '315', '413', '411', '412')
             AND xauto EQ 'X'
             AND matnr EQ itab-matnr
             AND mat_kdauf EQ itab-vbeln
             AND mat_kdpos EQ itab-posnr.
  ENDIF.
  SORT imseg BY kdauf kdpos matnr .
  LOOP AT itab.
    LOOP AT imseg WHERE kdauf = itab-vbeln AND
                        kdpos = itab-posnr. "

      itab-trfr_stk =  itab-trfr_stk + imseg-menge.
    ENDLOOP.
    itab-balqty = itab-kwmeng - ( itab-rfmng + itab-kalab + itab-trfr_stk ).
    MODIFY itab ."TRANSPORTING trfr_stk balqty itab.
  ENDLOOP.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN __default_attr="red" __jive_macro_name="color"&gt;Moderator message - Please see the thread at the top of this forum: &lt;A class="jive_macro jive_macro_thread" href="https://community.sap.com/" __jive_macro_name="thread" modifiedtitle="true" __default_attr="1283414"&gt;&lt;/A&gt; . You must show some evidence that there is a performance problem and that you have put in some effort to find where that problem is.}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Rob Burbank on Apr 20, 2009 9:33 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Apr 2009 06:36:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458682#M1250765</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-04-20T06:36:28Z</dc:date>
    </item>
    <item>
      <title>Re: How to optimize code and Improve performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458683#M1250766</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Few steps might be useful:&lt;/P&gt;&lt;P&gt;1) sort itab on matnr, vebln and posnr and remove adjacent duplicates&lt;/P&gt;&lt;P&gt;2) remove into corresponding fields&lt;/P&gt;&lt;P&gt;3) Instead of loop at itab use loop at itab assigning &amp;lt;fs_itab&amp;gt;, &amp;lt;fs_itab&amp;gt; is field-symbol of type itab, this would help in avoiding modify statment.&lt;/P&gt;&lt;P&gt;4) you can use aggregated function SUM in the query itself.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kritesh Shah&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Apr 2009 06:43:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458683#M1250766</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-04-20T06:43:11Z</dc:date>
    </item>
    <item>
      <title>Re: How to optimize code and Improve performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458684#M1250767</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The inner loop MUST use a BINARY SEARCH everything else is of much lower importance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;USE a sorted table for imseg&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Or check &lt;/P&gt;&lt;P&gt;Measurements on internal tables: Reads and Loops:&lt;/P&gt;&lt;P&gt;/people/siegfried.boes/blog/2007/09/12/runtimes-of-reads-and-loops-on-internal-tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;section 3 a workaround for standard tables !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Siegfried&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Apr 2009 06:54:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458684#M1250767</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-04-20T06:54:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to optimize code and Improve performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458685#M1250768</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;1.Try to provide werks in the MSEG ''SELECT".&lt;/P&gt;&lt;P&gt;2.Assuming itab deleted adjacent duplicates on vbeln,posnr.&lt;/P&gt;&lt;P&gt;LOOP table imseg instead ,try to Use AT END OF posnr...look for other logic (READ itab within ENDAT).&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Apr 2009 07:44:37 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458685#M1250768</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-04-20T07:44:37Z</dc:date>
    </item>
    <item>
      <title>Re: How to optimize code and Improve performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458686#M1250769</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Instead of two loops use read statement.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;LOOP AT itab.

 Read table IMSEG with key kdauf = itab-vbeln AND kdpos = itab-posnr Binary Search. 
 If sy-subrc = 0.
      itab-trfr_stk =  itab-trfr_stk + imseg-menge.
 ENDIF.

    itab-balqty = itab-kwmeng - ( itab-rfmng + itab-kalab + itab-trfr_stk ).
    MODIFY itab ."TRANSPORTING trfr_stk balqty itab.
  ENDLOOP.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Gurpreet&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Apr 2009 08:21:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458686#M1250769</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-04-20T08:21:07Z</dc:date>
    </item>
    <item>
      <title>Re: How to optimize code and Improve performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458687#M1250770</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Instead of using loop inside the loop, use read statement as follows&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab.&lt;/P&gt;&lt;P&gt;read table itab2 with key field = itab-field.&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;processing.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If it is really necessary to use loop with is the loop then use the following code for better performence.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sort itab2&lt;/P&gt;&lt;P&gt;loop at itab1.&lt;/P&gt;&lt;P&gt;read table itab2 with key fld1 = itab1-fld1 fld2 = itab1-fld2 binary search.&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;lv_tabix = sy-tabix&lt;/P&gt;&lt;P&gt;loop at itab2 into &amp;lt;fs&amp;gt; from lv_tabix.&lt;/P&gt;&lt;P&gt;processing.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Apr 2009 08:29:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458687#M1250770</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-04-20T08:29:17Z</dc:date>
    </item>
    <item>
      <title>Re: How to optimize code and Improve performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458688#M1250771</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Use parallel cursor technique for your second loop&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;data: l_tabix type sy-tabix.
  sort itab by &amp;lt;key field&amp;gt;
  sort imseg by kdauf kdpos matnr.
  loop at itab.
    Read table imseg WHERE kdauf = itab-vbeln AND kdpos = itab-posnr binary search.
    l_tabix = sy-tabix.
    loop at imseg index l_tabix.
      if ( kdauf = itab-vbeln AND kdpos = itab-posnr ).
        l_tabix = sy-tabix.
        itab-balqty = itab-kwmeng - ( itab-rfmng + itab-kalab + itab-trfr_stk ).
        MODIFY itab index l_tabix TRANSPORTING trfr_stk balqty itab.
      else.
      exit.
    endif.
  endloop.
endloop.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Lalit Mohan Gupta.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Apr 2009 10:54:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458688#M1250771</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-04-20T10:54:24Z</dc:date>
    </item>
    <item>
      <title>Re: How to optimize code and Improve performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458689#M1250772</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How often are the same points repeated aagin and again !!!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;The read reads only one line, it can not replace a loop&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Forget the parallel cursor&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN __default_attr="red" __jive_macro_name="color"&gt;&lt;SPAN __default_attr="24" __jive_macro_name="size"&gt;The way to go is a Sorted table&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there anybody, who understands that ??????????????????????&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Siegfried&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Apr 2009 11:38:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458689#M1250772</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-04-20T11:38:39Z</dc:date>
    </item>
    <item>
      <title>Re: How to optimize code and Improve performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458690#M1250773</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN __default_attr="pink" __jive_macro_name="color"&gt;&lt;SPAN __default_attr="30" __jive_macro_name="size"&gt;u2665Yesu2665&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN __jive_emoticon_name="wink"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Apr 2009 11:50:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458690#M1250773</guid>
      <dc:creator>ThomasZloch</dc:creator>
      <dc:date>2009-04-20T11:50:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to optimize code and Improve performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458691#M1250774</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In parallel cursor the loop is not replaced by read.&lt;/P&gt;&lt;P&gt;Read is just taken to get the index.&lt;/P&gt;&lt;P&gt;If you see the code both the loop still exist, its just the way i use it is changed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Lalit Mohan Gupta.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Apr 2009 11:56:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458691#M1250774</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-04-20T11:56:53Z</dc:date>
    </item>
    <item>
      <title>Re: How to optimize code and Improve performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458692#M1250775</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;But this parallel cursor approach is unnecessarily complex and thus obsolete, since sorted tables (defined as SORTED, not sorted via SORT!) can be used for the inner loop (there is an implicit binary search when the table key is used in the where-conditions)&lt;/P&gt;&lt;P&gt;Thomas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Apr 2009 12:03:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458692#M1250775</guid>
      <dc:creator>ThomasZloch</dc:creator>
      <dc:date>2009-04-20T12:03:34Z</dc:date>
    </item>
    <item>
      <title>Re: How to optimize code and Improve performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458693#M1250776</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;yes, parallel cursor works differently&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BUT, if both tables have lines which are not in the other table, then it becomes much more complex than your solution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And this is completely unnecessary, use the sorted table, then only the inner table must be sorted.&lt;/P&gt;&lt;P&gt;With parallel cursor both must be sorted. The additional cost for the second sort is often misunderstood as the advantage of the parallel cursor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Use parallel cursor if you process several ten thousand rows, then it is worth to invest to time into&lt;/P&gt;&lt;P&gt;the development.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Otherwise, the sorted table is the recommended solution! &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Siegfried&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Apr 2009 14:49:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458693#M1250776</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-04-20T14:49:11Z</dc:date>
    </item>
    <item>
      <title>Re: How to optimize code and Improve performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458694#M1250777</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Avoid INTO CORRESPONDING FIELDS.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Apr 2009 04:22:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458694#M1250777</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-04-21T04:22:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to optimize code and Improve performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458695#M1250778</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;gt; Avoid INTO CORRESPONDING FIELDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reason: because it was repeated 1000-times.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Was it ever tested ... not by the people who repeat it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Apr 2009 09:53:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458695#M1250778</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-04-21T09:53:54Z</dc:date>
    </item>
    <item>
      <title>Re: How to optimize code and Improve performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458696#M1250779</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Enough.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Apr 2009 12:58:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-optimize-code-and-improve-performance/m-p/5458696#M1250779</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-04-21T12:58:05Z</dc:date>
    </item>
  </channel>
</rss>

