<?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 Doubt in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/doubt/m-p/3481743#M837039</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Gurus,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    Please can any one tell me how to do performance for our programs. How we can test performance is good or not. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     If performance is not gud what steps we have to follow.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        Thanks in Advance..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards&lt;/P&gt;&lt;P&gt;Siri...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 05 Mar 2008 07:19:50 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-03-05T07:19:50Z</dc:date>
    <item>
      <title>Doubt</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/doubt/m-p/3481743#M837039</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Gurus,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    Please can any one tell me how to do performance for our programs. How we can test performance is good or not. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     If performance is not gud what steps we have to follow.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        Thanks in Advance..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards&lt;/P&gt;&lt;P&gt;Siri...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Mar 2008 07:19:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/doubt/m-p/3481743#M837039</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-05T07:19:50Z</dc:date>
    </item>
    <item>
      <title>Re: Doubt</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/doubt/m-p/3481744#M837040</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;You can use the tcode se30 for permormance analysis&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this will help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Shibin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Mar 2008 07:24:00 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/doubt/m-p/3481744#M837040</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-05T07:24:00Z</dc:date>
    </item>
    <item>
      <title>Re: Doubt</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/doubt/m-p/3481745#M837041</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;You can do the performance check by&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. SM30  - Runtime Analysis&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;2. Extended program check (slin)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3.ST05  SQL trace&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4.Notice the time taken to execute the program and &lt;/P&gt;&lt;P&gt;   try to avoid select * like stmts.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5. Code inspector&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;6. Clear all work areas, Refresh all internal tables which u  &lt;/P&gt;&lt;P&gt;    have  used in the program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Anil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Mar 2008 07:24:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/doubt/m-p/3481745#M837041</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-05T07:24:15Z</dc:date>
    </item>
    <item>
      <title>Re: Doubt</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/doubt/m-p/3481746#M837042</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;Follow this chck list for improving the performance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Run Extended syntax checks with character literals checkbox switched on &amp;amp; Code Inspector to rectify all relevant errors and warning (e.g. Use the results of the above checks to remove all variables/constants etc that are declared but are not used)&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Transaction SE30 (ABAP Runtime Analysis) must be checked to measure/compare program performance/runtime if program has multiple inefficient databases selects or complicated internal table operations&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Use transaction ST05 (SQL Trace) to see what indices your database accesses are using. Check these indices against your &amp;#147;where&amp;#148; clause to assure they are significant. Check other indices for this table and where you have to change your &amp;#147;where&amp;#148; clause to use it. Create new indices if necessary, but do not forget to check the impact by consulting onsite coordinator.&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;TYPE (data element) command is used while declaring the fields whenever feasible instead of LIKE. Remember not always the data element name matches with the table field name&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Internal Table is defined with &amp;#147;TYPE STANDARD TABLE OF&amp;#148; &amp;amp; Work-Areas is used instead of header lines&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Global variables are minimized by declaring local variables or by passing variables through parameters &amp;amp; arguments while creating internal subroutine(s)&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;In SELECT statement, only the required fields are selected in the same order as they reside on the database table/structure/view&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;For selecting single row from a database table, &amp;#147;SELECT UP to 1 Rows&amp;#148; is used. &amp;#147;Select Single&amp;#148; is used only when full primary key combination is known&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;No SELECT * is used&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Use &amp;#147;SELECT INTO TABLE&amp;#148; rather than &amp;#147;SELECT INTO CORRESPONDING FIELDS OF TABLE&amp;#148;&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Always specify as many primary keys as possible in WHERE clause to make the Select efficient&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Always select into an internal table, except when the table will be very large (i.e., when the internal table will be greater than 500,000 records). Use &amp;#147;Up to N Rows&amp;#148; when the number of records needed is known&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Select statement within a GET event is not used&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Wild cards like &amp;#145;A%&amp;#146; is avoided as much as possible&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Nested Select is not used instead &amp;#147;Inner Join&amp;#148; and/or &amp;#147;For all Entries&amp;#148; is used. &amp;#147;For all Entries&amp;#148; is to be used over &amp;#147;Loop at ITAB / Select / ENDLOOP&amp;#148; (FOR ALL ENTRIES retrieves a unique result set so ensure you retrieve the full key from the database)&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;When creating joins over database tables there should be an index at least on the inner table for the fields in the join condition else use &amp;#147; FOR ALL ENTRIES&amp;#148; select statement&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Usage of JOIN is limited to a maximum of 2 i.e. not more than 3 database tables are joined at one time&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;CHECK that the internal table used in FOR ALL ENTRIES is NOT empty as this will retrieve all entries from the table&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Delete adjacent duplicate entries from internal table before selection from database table using &amp;#147; FOR ALL ENTRIES&amp;#148; statement&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;For copying internal tables use &amp;#145;=&amp;#146; operator instead of Looping &amp;amp; Appending&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;SORT inside a LOOP is not used&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Sort internal table by fields in the correct order, which are used in a READ TABLE statement using BINARY SEARCH. If the order of sorting is invalid the BINARY SEARCH will never work&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;For large internal tables where only some rows are to be processed, use SORT and then the READ TABLE command is used to set index to first relevant row before looping from that index. Use CHECK or IF&amp;#133;EXIT&amp;#133;ENDIF as appropriate to exit from the loop&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Sort fields and Sort Order on the SORT statement should be mentioned explicitly (e.g. SORT ITAB BY FLD1 FLD2 ASCENDING)&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Hashed table is used for processing large amount of data (provided that you access single records only, and all with a fully specified key)&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;DELETE or SORT is not used on a hashed table since it increases memory consumption&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Sorted table is used for range accesses involving table key or index accesses&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Fields specified in the WHERE condition with the critical operators NOT and &amp;lt;&amp;gt; (negative SQL statements) cannot be used for a search using database indexes. Whenever possible formulate SQL statements positively&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;When coding IF or CASE, testing conditions are nested so that the most frequently true conditions are processed first. Also CASE is used instead of IF when testing multiple fields &amp;#147;equal to&amp;#148; something&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;LOOP AT ITAB INTO WORKAREA WHERE K = &amp;#145;XXX&amp;#146; should be used instead of LOOP AT ITAB INTO WORKAREA / CHECK ITAB-K = &amp;#145;XXX&amp;#146;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also READ TABLE INTO WORKAREA should be used instead of only READ TABLE.&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;After the APPEND statement inside a loop, the work area that has been appended is cleared&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Internal tables, Work areas &amp;amp; Global Variables are freed when no longer needed (e.g. using the FREE / REFRESH command), especially when the tables are large or the program is a batch program&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Do not delete the records of internal table inside the Loop &amp;#150; End loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do not use: LOOP AT ITAB WHERE EQUNR = &amp;#145;00001011&amp;#146;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DELETE ITAB.&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;Use: DELETE ITAB WHERE EQUNR = &amp;#145;00001011&amp;#146;. &lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Use the MODIFY ITAB ... TRANSPORTING f1 f2 ... for single line, and MODIFY ITAB ... TRANSPORTING f1 f2 ... WHERE condition for a set of line, to accelerate the updating of internal table&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;If possible, Update/Insert statement is used instead of Modify&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Is the following steps ensured during database updates?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Lock data to be edited &lt;/P&gt;&lt;P&gt;Read current data from the database &lt;/P&gt;&lt;P&gt;Process data and write it to the database &lt;/P&gt;&lt;P&gt;Release the locks set at the beginning &lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Try to avoid logical databases. If your program uses a logical database, but does not require all fields belonging to a certain GET event, always use the FIELDS addition to reduce the amount of data selected by the logical database&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Avoid the aggregate (Count, Max, Min) functions in the database selection&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;Use Parallel Cursor methods for nested loop into the internal tables if second internal table contains considerable number of records&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;In Smartform/ Sapscript do not make redundant data retrieval where data is available in interface&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Hope this helps, Do reward.&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Mar 2008 07:27:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/doubt/m-p/3481746#M837042</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-05T07:27:14Z</dc:date>
    </item>
    <item>
      <title>Re: Doubt</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/doubt/m-p/3481747#M837043</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;goto se30------in that give u r program name..and click on execute...u can know the performance of u r program..&lt;/P&gt;&lt;P&gt;u can also do SLIN---extended program check also&lt;/P&gt;&lt;P&gt;open the program.....and in menu bar PROGRAM--&lt;DEL&gt;CHECK&lt;/DEL&gt;-EXTENDED PROGRAM CHECK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Jyothsna M on Mar 5, 2008 8:28 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Mar 2008 07:28:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/doubt/m-p/3481747#M837043</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-05T07:28:01Z</dc:date>
    </item>
    <item>
      <title>Re: Doubt</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/doubt/m-p/3481748#M837044</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;&lt;U&gt;Performance of the program can be  done use SE30.&lt;/U&gt;  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  1. Give ur program name and execute it.&lt;/P&gt;&lt;P&gt;  Here u will have  three  bar graphs,&lt;/P&gt;&lt;P&gt;ABAP Program, Database and System all the three should be  in green color and less tha 50 % for good performance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;U&gt;Performance of the program can  also be  done&lt;/U&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1 goto se38&lt;/P&gt;&lt;P&gt;2. enter ur program name&lt;/P&gt;&lt;P&gt;3. goto programs&lt;DEL&gt;checks&lt;/DEL&gt;u find no of performances checks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    And to improve the performances of the programs take care the follow are not present in ur programs.&lt;/P&gt;&lt;P&gt;1. Inner joins&lt;/P&gt;&lt;P&gt;2. Selcet and endslect.&lt;/P&gt;&lt;P&gt;3. nested loops and select statments.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;kavitha.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Mar 2008 07:40:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/doubt/m-p/3481748#M837044</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-05T07:40:53Z</dc:date>
    </item>
  </channel>
</rss>

