<?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: Performance tuning techniques in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685138#M301746</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Have a look at belwo link. The documentation is available on SDN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5d0db4c9-0e01-0010-b68f-9b1408d5f234" target="test_blank"&gt;https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5d0db4c9-0e01-0010-b68f-9b1408d5f234&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Vibha &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Please mark all the helpful answers&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 18 Nov 2006 03:29:47 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-11-18T03:29:47Z</dc:date>
    <item>
      <title>Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685125#M301733</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am looking to compile a list of the major performance tuning techniques that can be implemented in an ABAP program.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Appreciate any feedback&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;J&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Nov 2006 14:34:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685125#M301733</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-09T14:34:42Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685126#M301734</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If you are selecting small amounts of data, make sure you use an index effectively.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you have moderate amounts of data, make sure that you are not using nested loops. It's still good to use an index, but not relatively as important. Nested selects start to become an issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want to retrieve extremely large amounts of data, make sure that you are not using nested loops. Avoiding nested selects becomes more important. If you are retrieving an entire table, using an index is not important.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the next week or so, I hope to have a BLOG that demonstrates this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Nov 2006 15:24:00 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685126#M301734</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-09T15:24:00Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685127#M301735</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi JJ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Few More:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Avoid selecting data from Clustur table.&lt;/P&gt;&lt;P&gt;2. Use Array select stmt.. : into table i_tab&lt;/P&gt;&lt;P&gt;3. Avoid Nested Select&lt;/P&gt;&lt;P&gt;4. Check table entry before using FOR ALL ENTRIES..&lt;/P&gt;&lt;P&gt;5. Use INNER JOIN if more than 1 table are required for selection and are linked.&lt;/P&gt;&lt;P&gt;6. Use READ stmt with BINARY option.&lt;/P&gt;&lt;P&gt;7. Declare Internal table as required STANDARD?SORTED?HASHED..&lt;/P&gt;&lt;P&gt;8. MODuLARIZE Your program using SUBROUTINE/ FUNCTION MODULE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Well there are many. If possible send your mail id.&lt;/P&gt;&lt;P&gt;Will forward you the document. Hope your job gets done.easily.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if that helps.&lt;/P&gt;&lt;P&gt;Manish&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Nov 2006 15:39:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685127#M301735</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-09T15:39:34Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685128#M301736</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Call Transaction SE30 an press the button Tips &amp;amp; Tricks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Matthias&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Nov 2006 17:00:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685128#M301736</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-09T17:00:10Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685129#M301737</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi , this comes from the SAP ABAP Performance Tuning Course&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RULES FOR EFFECTIVE SELECT STATEMENTS IN ABAP&lt;/P&gt;&lt;P&gt;These have been developed from those set up by the late, grea,t Axel Kurka (&amp;#145;Doctor ABAP&amp;#146;)  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1.	THINK AND EXPERIMENT&lt;/P&gt;&lt;P&gt;Are you using the right tables?&lt;/P&gt;&lt;P&gt;Document tables (VBAK, BSEG etc) grow quickly and you should try to avoid using them &amp;#150;  investigate the application area of SAP you are working in and see if the standard system is doing similar processing, what tables is it using?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2.	KEEP THE RESULT SET SMALL. &lt;/P&gt;&lt;P&gt;Use the WHERE condition not CHECK &lt;/P&gt;&lt;P&gt;Never retrieve more data than you need&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3.	MINIMISE THE AMOUNT OF DATA TRANSFERRED BETWEEN THE DATABASE AND APPLICATION SERVER.&lt;/P&gt;&lt;P&gt;No SELECT *&amp;#146;s. &lt;/P&gt;&lt;P&gt;Use UPDATE .. SET if possible. &lt;/P&gt;&lt;P&gt;Use aggregate functions (MAX CNT SUM etc) &amp;#150; this is often justified even though you are breaking rule 6 (see below).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4.	MINIMISE THE NUMBER OF TRANSFERS BETWEEN DATABASE AND APPLICATION SERVER. &lt;/P&gt;&lt;P&gt;Avoid SELECT &amp;#133; ENDSELECT, especially nested SELECT&amp;#146;s&lt;/P&gt;&lt;P&gt;Use INSERT &amp;#133; from TABLE. &lt;/P&gt;&lt;P&gt;Try to retrieve all your data at once &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5.	MINIMISE THE SEARCH OVERHEAD.&lt;/P&gt;&lt;P&gt;Would an index help?  But, remember the extra maintenance cost and the impact on other ABAP&amp;#146;s.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;6.	REDUCE THE DATABASE LOAD.&lt;/P&gt;&lt;P&gt; Buffer small tables. &lt;/P&gt;&lt;P&gt;Avoid ORDER BY &amp;#150; use SORT unless the sort order is the same as the index used by the database. &lt;/P&gt;&lt;P&gt;Avoid reading the same data more than once&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Nov 2006 10:55:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685129#M301737</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-10T10:55:25Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685130#M301738</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Have a look at below links:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapdevelopment.co.uk/perform/performhome.htm" target="test_blank"&gt;http://www.sapdevelopment.co.uk/perform/performhome.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/afbad390-0201-0010-daa4-9ef0168d41b6" target="test_blank"&gt;https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/afbad390-0201-0010-daa4-9ef0168d41b6&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Vibha &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Please mark all the helpful answers&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Nov 2006 11:02:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685130#M301738</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-10T11:02:10Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685131#M301739</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;chk this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.erpgenie.com/abap/performance.htm" target="test_blank"&gt;http://www.erpgenie.com/abap/performance.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp" target="test_blank"&gt;http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/performance-tuning-for-data-selection-statement.htm" target="test_blank"&gt;http://www.sap-img.com/abap/performance-tuning-for-data-selection-statement.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Performance tuning for Data Selection Statement  &lt;/P&gt;&lt;P&gt;For all entries&lt;/P&gt;&lt;P&gt;The for all entries creates a where clause, where all the entries in the driver table are combined with OR. If the number of  &lt;/P&gt;&lt;P&gt;entries in the driver table is larger than rsdb/max_blocking_factor, several similar SQL statements are executed to limit the  &lt;/P&gt;&lt;P&gt;length of the WHERE clause.  &lt;/P&gt;&lt;P&gt;The plus &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Large amount of data  &lt;/P&gt;&lt;P&gt;Mixing processing and reading of data  &lt;/P&gt;&lt;P&gt;Fast internal reprocessing of data  &lt;/P&gt;&lt;P&gt;Fast  &lt;/P&gt;&lt;P&gt;The Minus &lt;/P&gt;&lt;P&gt;Difficult to program/understand  &lt;/P&gt;&lt;P&gt;Memory could be critical (use FREE or PACKAGE size)  &lt;/P&gt;&lt;P&gt;Some steps that might make FOR ALL ENTRIES more efficient: &lt;/P&gt;&lt;P&gt;Removing duplicates from the the driver table  &lt;/P&gt;&lt;P&gt;Sorting the driver table  &lt;/P&gt;&lt;P&gt;If possible, convert the data in the driver table to ranges so a BETWEEN statement is used instead of and OR statement: &lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN i_tab &lt;/P&gt;&lt;P&gt;  WHERE mykey &amp;gt;= i_tab-low and &lt;/P&gt;&lt;P&gt;        mykey &amp;lt;= i_tab-high.&lt;/P&gt;&lt;P&gt;Nested selects&lt;/P&gt;&lt;P&gt;The plus: &lt;/P&gt;&lt;P&gt;Small amount of data  &lt;/P&gt;&lt;P&gt;Mixing processing and reading of data  &lt;/P&gt;&lt;P&gt;Easy to code - and understand  &lt;/P&gt;&lt;P&gt;The minus: &lt;/P&gt;&lt;P&gt;Large amount of data  &lt;/P&gt;&lt;P&gt;when mixed processing isn&amp;#146;t needed  &lt;/P&gt;&lt;P&gt;Performance killer no. 1 &lt;/P&gt;&lt;P&gt;Select using JOINS&lt;/P&gt;&lt;P&gt;The plus &lt;/P&gt;&lt;P&gt;Very large amount of data  &lt;/P&gt;&lt;P&gt;Similar to Nested selects - when the accesses are planned by the programmer  &lt;/P&gt;&lt;P&gt;In some cases the fastest  &lt;/P&gt;&lt;P&gt;Not so memory critical  &lt;/P&gt;&lt;P&gt;The minus &lt;/P&gt;&lt;P&gt;Very difficult to program/understand  &lt;/P&gt;&lt;P&gt;Mixing processing and reading of data not possible  &lt;/P&gt;&lt;P&gt;Use the selection criteria &lt;/P&gt;&lt;P&gt;SELECT * FROM SBOOK.                    &lt;/P&gt;&lt;P&gt;  CHECK: SBOOK-CARRID = 'LH' AND        &lt;/P&gt;&lt;P&gt;                  SBOOK-CONNID = '0400'.         &lt;/P&gt;&lt;P&gt;ENDSELECT.                              &lt;/P&gt;&lt;P&gt;SELECT * FROM SBOOK                      &lt;/P&gt;&lt;P&gt;  WHERE CARRID = 'LH' AND                &lt;/P&gt;&lt;P&gt;        CONNID = '0400'.                 &lt;/P&gt;&lt;P&gt;ENDSELECT.                               &lt;/P&gt;&lt;P&gt;Use the aggregated functions &lt;/P&gt;&lt;P&gt;C4A = '000'.               &lt;/P&gt;&lt;P&gt;SELECT * FROM T100         &lt;/P&gt;&lt;P&gt;  WHERE SPRSL = 'D' AND    &lt;/P&gt;&lt;P&gt;        ARBGB = '00'.      &lt;/P&gt;&lt;P&gt;  CHECK: T100-MSGNR &amp;gt; C4A. &lt;/P&gt;&lt;P&gt;  C4A = T100-MSGNR.        &lt;/P&gt;&lt;P&gt;ENDSELECT.                 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT MAX( MSGNR ) FROM T100 INTO C4A  &lt;/P&gt;&lt;P&gt; WHERE SPRSL = 'D' AND                 &lt;/P&gt;&lt;P&gt;       ARBGB = '00'.                   &lt;/P&gt;&lt;P&gt;Select with view&lt;/P&gt;&lt;P&gt;SELECT * FROM DD01L                     &lt;/P&gt;&lt;P&gt;  WHERE DOMNAME LIKE 'CHAR%'            &lt;/P&gt;&lt;P&gt;        AND AS4LOCAL = 'A'.             &lt;/P&gt;&lt;P&gt;  SELECT SINGLE * FROM DD01T            &lt;/P&gt;&lt;P&gt;    WHERE   DOMNAME    = DD01L-DOMNAME  &lt;/P&gt;&lt;P&gt;        AND AS4LOCAL   = 'A'            &lt;/P&gt;&lt;P&gt;        AND AS4VERS    = DD01L-AS4VERS  &lt;/P&gt;&lt;P&gt;        AND DDLANGUAGE = SY-LANGU.      &lt;/P&gt;&lt;P&gt;ENDSELECT.                              &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM DD01V                     &lt;/P&gt;&lt;P&gt; WHERE DOMNAME LIKE 'CHAR%'            &lt;/P&gt;&lt;P&gt;       AND DDLANGUAGE = SY-LANGU.      &lt;/P&gt;&lt;P&gt;ENDSELECT.                              &lt;/P&gt;&lt;P&gt;Select with index support&lt;/P&gt;&lt;P&gt;SELECT * FROM T100             &lt;/P&gt;&lt;P&gt; WHERE     ARBGB = '00'       &lt;/P&gt;&lt;P&gt;       AND MSGNR = '999'.     &lt;/P&gt;&lt;P&gt;ENDSELECT.                     &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM T002.              &lt;/P&gt;&lt;P&gt;  SELECT * FROM T100             &lt;/P&gt;&lt;P&gt;    WHERE     SPRSL = T002-SPRAS &lt;/P&gt;&lt;P&gt;          AND ARBGB = '00'       &lt;/P&gt;&lt;P&gt;          AND MSGNR = '999'.     &lt;/P&gt;&lt;P&gt;  ENDSELECT.                     &lt;/P&gt;&lt;P&gt;ENDSELECT.                       &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Select &amp;#133; Into table&lt;/P&gt;&lt;P&gt;REFRESH X006.                  &lt;/P&gt;&lt;P&gt;SELECT * FROM T006 INTO X006.  &lt;/P&gt;&lt;P&gt;  APPEND X006.                 &lt;/P&gt;&lt;P&gt;ENDSELECT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM T006 INTO TABLE X006.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Select with selection list&lt;/P&gt;&lt;P&gt;SELECT * FROM DD01L               &lt;/P&gt;&lt;P&gt;  WHERE DOMNAME LIKE 'CHAR%'      &lt;/P&gt;&lt;P&gt;        AND AS4LOCAL = 'A'.       &lt;/P&gt;&lt;P&gt;ENDSELECT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT DOMNAME FROM DD01L     &lt;/P&gt;&lt;P&gt; INTO DD01L-DOMNAME          &lt;/P&gt;&lt;P&gt; WHERE DOMNAME LIKE 'CHAR%'  &lt;/P&gt;&lt;P&gt;       AND AS4LOCAL = 'A'.   &lt;/P&gt;&lt;P&gt;ENDSELECT&lt;/P&gt;&lt;P&gt;Key access to multiple lines&lt;/P&gt;&lt;P&gt;LOOP AT TAB.           &lt;/P&gt;&lt;P&gt; CHECK TAB-K = KVAL.  &lt;/P&gt;&lt;P&gt; " ...                &lt;/P&gt;&lt;P&gt;ENDLOOP.               &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT TAB WHERE K = KVAL.      &lt;/P&gt;&lt;P&gt;  " ...                          &lt;/P&gt;&lt;P&gt;ENDLOOP.                         &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Copying internal tables&lt;/P&gt;&lt;P&gt;REFRESH TAB_DEST.               &lt;/P&gt;&lt;P&gt;LOOP AT TAB_SRC INTO TAB_DEST.  &lt;/P&gt;&lt;P&gt;  APPEND TAB_DEST.              &lt;/P&gt;&lt;P&gt;ENDLOOP.                        &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TAB_DEST[] = TAB_SRC[].&lt;/P&gt;&lt;P&gt;Modifying a set of lines&lt;/P&gt;&lt;P&gt;LOOP AT TAB.              &lt;/P&gt;&lt;P&gt;  IF TAB-FLAG IS INITIAL. &lt;/P&gt;&lt;P&gt;    TAB-FLAG = 'X'.       &lt;/P&gt;&lt;P&gt;  ENDIF.                  &lt;/P&gt;&lt;P&gt;  MODIFY TAB.             &lt;/P&gt;&lt;P&gt;ENDLOOP.                  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TAB-FLAG = 'X'.                   &lt;/P&gt;&lt;P&gt;MODIFY TAB TRANSPORTING FLAG      &lt;/P&gt;&lt;P&gt;           WHERE FLAG IS INITIAL. &lt;/P&gt;&lt;P&gt;Deleting a sequence of lines&lt;/P&gt;&lt;P&gt;DO 101 TIMES.                &lt;/P&gt;&lt;P&gt;  DELETE TAB_DEST INDEX 450. &lt;/P&gt;&lt;P&gt;ENDDO.                       &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DELETE TAB_DEST FROM 450 TO 550.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Linear search vs. binary&lt;/P&gt;&lt;P&gt;READ TABLE TAB WITH KEY K = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE TAB WITH KEY K = 'X' BINARY SEARCH.&lt;/P&gt;&lt;P&gt;Comparison of internal tables&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE: TAB1 LINES L1,       &lt;/P&gt;&lt;P&gt;                TAB2 LINES L2.       &lt;/P&gt;&lt;P&gt;                                     &lt;/P&gt;&lt;P&gt;IF L1 &amp;lt;&amp;gt; L2.                         &lt;/P&gt;&lt;P&gt;  TAB_DIFFERENT = 'X'.               &lt;/P&gt;&lt;P&gt;ELSE.                                &lt;/P&gt;&lt;P&gt;  TAB_DIFFERENT = SPACE.             &lt;/P&gt;&lt;P&gt;  LOOP AT TAB1.                      &lt;/P&gt;&lt;P&gt;    READ TABLE TAB2 INDEX SY-TABIX.  &lt;/P&gt;&lt;P&gt;    IF TAB1 &amp;lt;&amp;gt; TAB2.                 &lt;/P&gt;&lt;P&gt;      TAB_DIFFERENT = 'X'. EXIT.     &lt;/P&gt;&lt;P&gt;    ENDIF.                           &lt;/P&gt;&lt;P&gt;  ENDLOOP.                           &lt;/P&gt;&lt;P&gt;ENDIF.                               &lt;/P&gt;&lt;P&gt;                                     &lt;/P&gt;&lt;P&gt;IF TAB_DIFFERENT = SPACE.            &lt;/P&gt;&lt;P&gt;  " ...                              &lt;/P&gt;&lt;P&gt;ENDIF.                               &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF TAB1[] = TAB2[].   &lt;/P&gt;&lt;P&gt; " ...               &lt;/P&gt;&lt;P&gt;ENDIF.                &lt;/P&gt;&lt;P&gt;Modify selected components&lt;/P&gt;&lt;P&gt;LOOP AT TAB.            &lt;/P&gt;&lt;P&gt; TAB-DATE = SY-DATUM.  &lt;/P&gt;&lt;P&gt; MODIFY TAB.           &lt;/P&gt;&lt;P&gt;ENDLOOP.                &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WA-DATE = SY-DATUM.                     &lt;/P&gt;&lt;P&gt;LOOP AT TAB.                            &lt;/P&gt;&lt;P&gt; MODIFY TAB FROM WA TRANSPORTING DATE. &lt;/P&gt;&lt;P&gt;ENDLOOP.                                &lt;/P&gt;&lt;P&gt;Appending two internal tables&lt;/P&gt;&lt;P&gt;LOOP AT TAB_SRC.               &lt;/P&gt;&lt;P&gt;  APPEND TAB_SRC TO TAB_DEST.  &lt;/P&gt;&lt;P&gt;ENDLOOP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND LINES OF TAB_SRC TO TAB_DEST.&lt;/P&gt;&lt;P&gt;Deleting a set of lines&lt;/P&gt;&lt;P&gt;LOOP AT TAB_DEST WHERE K = KVAL.  &lt;/P&gt;&lt;P&gt;  DELETE TAB_DEST.                &lt;/P&gt;&lt;P&gt;ENDLOOP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DELETE TAB_DEST WHERE K = KVAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tools available in SAP to pin-point a performance problem&lt;/P&gt;&lt;P&gt;The runtime analysis (SE30)&lt;/P&gt;&lt;P&gt;SQL Trace (ST05)&lt;/P&gt;&lt;P&gt;Tips and Tricks tool &lt;/P&gt;&lt;P&gt;The performance database&lt;/P&gt;&lt;P&gt;Optimizing the load of the database&lt;/P&gt;&lt;P&gt;Using table buffering&lt;/P&gt;&lt;P&gt;Using buffered tables improves the performance considerably. Note that in some cases a stament can not be used with a buffered table, so when using these staments the buffer will be bypassed. These staments are: &lt;/P&gt;&lt;P&gt;Select DISTINCT  &lt;/P&gt;&lt;P&gt;ORDER BY / GROUP BY / HAVING clause  &lt;/P&gt;&lt;P&gt;Any WHERE clasuse that contains a subquery or IS NULL expression  &lt;/P&gt;&lt;P&gt;JOIN s  &lt;/P&gt;&lt;P&gt;A SELECT... FOR UPDATE  &lt;/P&gt;&lt;P&gt;If you wnat to explicitly bypass the bufer, use the BYPASS BUFFER addition to the SELECT clause. &lt;/P&gt;&lt;P&gt;Use the ABAP SORT Clause Instead of ORDER BY&lt;/P&gt;&lt;P&gt;The ORDER BY clause is executed on the database server while the ABAP SORT statement is executed on the application server. The datbase server will usually be the bottleneck, so sometimes it is better to move thje sort from the datsbase server to the application server. &lt;/P&gt;&lt;P&gt;If you are not sorting by the primary key ( E.g. using the ORDER BY PRIMARY key statement) but are sorting by another key, it could be better to use the ABAP SORT stament to sort the data in an internal table. Note however that for very large result sets it might not be a feasible solution and you would want to let the datbase server sort it. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Avoid ther SELECT DISTINCT Statement&lt;/P&gt;&lt;P&gt;As with the ORDER BY clause it could be better to avoid using SELECT DISTINCT, if some of the fields are not part of an index. Instead use ABAP SORT + DELETE ADJACENT DUPLICATES on an internal table, to delete duplciate rows. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regds&lt;/P&gt;&lt;P&gt;Anver&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if hlped pls mark points&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Nov 2006 11:04:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685131#M301739</guid>
      <dc:creator>anversha_s</dc:creator>
      <dc:date>2006-11-10T11:04:19Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685132#M301740</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We are trying to select data from a large indexed table.  Even though the select statement is similar to one of the indexes,  the sql trace shows the select statement using an index that is less efficient.  In our development box it picks the more effiecient index.  In production the optimizer chooses the index with the most records basically perfoming a table scan of 16,000,000 records.  Can anyone tell me why the optimizer is not choosing the correct index?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Nov 2006 21:23:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685132#M301740</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-10T21:23:15Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685133#M301741</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are the stats (runstats) on the table up to date?&lt;/P&gt;&lt;P&gt;Is the optimizer running on rule based, mixed or cost based?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What is the sequence of the from clause and the where clause?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Enjoy&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Nov 2006 13:56:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685133#M301741</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-12T13:56:50Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685134#M301742</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We are not sure what optimizer we are using.  How do you determine what optimizer is being used..  We ran runstats over the weekend.  The select statement is * for the from the where is in order of the index we would like to use.  They are not in the same order as the select "from"  is following the primary key of the table and where is structured similar to the index we would like to use.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Nov 2006 14:30:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685134#M301742</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-13T14:30:54Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685135#M301743</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;the answer is "it depends" - not the best answer I'm afraid but optimizer may not select your index if it thinks that it's not "selective" enough, or if one of select-options has blank value as one of the possible values, or... (the case may be - most of the fields in the index you are trying to use have the same value or just a small number of distinct values - very likely that optimizer will not use that index).&lt;/P&gt;&lt;P&gt;I would suggest you check with your BD admins on why this index is not used, in some cases the only way is to use "hint" to force index usage... even SAP suggested this for their code in some OSS notes. However I would try to re-write or re-design your logic to either help otimizer to select your index or to improve performance using other index.&lt;/P&gt;&lt;P&gt;btw, would really help if you tell which table you are tryting to select from :o).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Nov 2006 19:22:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685135#M301743</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-15T19:22:33Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685136#M301744</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As most of the people have mentioned above. performace criterion depends on how well you select statements are written,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;few points ill like to mention over here are.&lt;/P&gt;&lt;P&gt;1. Select .. endselect statement should not be used as it is a big performance &lt;/P&gt;&lt;P&gt;issue. this will connet to databse for each fetched record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. While writing where clause try to give the same sequence of field as given in &lt;/P&gt;&lt;P&gt;batabase table. this improves performance a lot&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. Nested select statement should be avoided. in place of nested select &lt;/P&gt;&lt;P&gt;statemens we can use for all entries statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. Try to use binary search whenever possible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5. Check if internal table is empty while using for all entries statement.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Nov 2006 11:53:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685136#M301744</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-16T11:53:04Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685137#M301745</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We was using AboveSoft Analizer, to achieve that,&lt;/P&gt;&lt;P&gt;You can dowload from &amp;lt;a href="http://download.abovesoft.com"&amp;gt;here&amp;lt;/a&amp;gt;.&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Nov 2006 20:59:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685137#M301745</guid>
      <dc:creator>LucianoBentiveg</dc:creator>
      <dc:date>2006-11-17T20:59:57Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685138#M301746</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Have a look at belwo link. The documentation is available on SDN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5d0db4c9-0e01-0010-b68f-9b1408d5f234" target="test_blank"&gt;https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5d0db4c9-0e01-0010-b68f-9b1408d5f234&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Vibha &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Please mark all the helpful answers&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Nov 2006 03:29:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685138#M301746</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-18T03:29:47Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685139#M301747</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try to minimize database access. i.e try to minimize multiple select statements,. Instead of loops for select queries use FOR ALL ENTRIES IN ITAB. &lt;/P&gt;&lt;P&gt;Try to put maximum conditions in where clause, so that database access is fast. &lt;/P&gt;&lt;P&gt;i.e selection frm the database.&lt;/P&gt;&lt;P&gt;Try to use indexes of the tables while searching. &lt;/P&gt;&lt;P&gt;While looping use where condition. &lt;/P&gt;&lt;P&gt;This will surely help you improving your performance&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Nov 2006 09:45:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/1685139#M301747</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-18T09:45:54Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning techniques</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/13691208#M2027902</link>
      <description>&lt;P&gt;There are so many performance tuning techniques in sap abap coding .&lt;/P&gt;&lt;P&gt;Few of them are very common and listed below :&lt;/P&gt;&lt;P&gt;1. Parallel cursor technique&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. For all entries in&amp;nbsp;&lt;/P&gt;&lt;P&gt;3. select joins&amp;nbsp;&lt;/P&gt;&lt;P&gt;4. Using text elements to remove unnecessary ATC check errors and code inspector errors.&lt;/P&gt;&lt;P&gt;5. Debugging&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 03 May 2024 19:20:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning-techniques/m-p/13691208#M2027902</guid>
      <dc:creator>anjalihora</dc:creator>
      <dc:date>2024-05-03T19:20:47Z</dc:date>
    </item>
  </channel>
</rss>

