<?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 problem? in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2955607#M697184</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;SELECT VBAK~AUDAT VBAK~KUNNR VBAK~VBELN&lt;/P&gt;&lt;P&gt;         VBAP~POSNR VBAP~MATNR VBAP~WERKS&lt;/P&gt;&lt;P&gt;         VBAP~KWMENG VBAP~UEPOS&lt;/P&gt;&lt;P&gt;      INTO CORRESPONDING FIELDS OF TABLE LT_LIST&lt;/P&gt;&lt;P&gt;      FROM VBAK&lt;/P&gt;&lt;P&gt;      INNER JOIN VBAP ON&lt;/P&gt;&lt;P&gt;      VBAK~VBELN = VBAP~VBELN&lt;/P&gt;&lt;P&gt;      WHERE VBAK~VBELN IN S_VBELN&lt;/P&gt;&lt;P&gt;        AND VBAK~AUART IN S_AUART&lt;/P&gt;&lt;P&gt;        AND VBAK~VKORG = P_VKORG&lt;/P&gt;&lt;P&gt;        AND VBAK~VTWEG IN S_VTWEG&lt;/P&gt;&lt;P&gt;        AND VBAK~SPART IN S_SPART&lt;/P&gt;&lt;P&gt;        AND VBAK~AUDAT IN S_AUDAT&lt;/P&gt;&lt;P&gt;        AND VBAP~WERKS IN S_WERKS&lt;/P&gt;&lt;P&gt;        AND VBAK~KUNNR IN S_KUNNR&lt;/P&gt;&lt;P&gt;        AND VBAP~MATNR IN S_MATNR&lt;/P&gt;&lt;P&gt;        AND VBAP~ABGRU = ''.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    SELECT * INTO TABLE LT_VBKD&lt;/P&gt;&lt;P&gt;        FROM VBKD&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN LT_LIST&lt;/P&gt;&lt;P&gt;        WHERE VBELN = LT_LIST-VBELN&lt;/P&gt;&lt;P&gt;          AND POSNR = '000000'&lt;/P&gt;&lt;P&gt;          AND BSTKD IN S_BSTKD.&lt;/P&gt;&lt;P&gt;    SORT LT_VBKD BY VBELN POSNR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CHECK BSTKD&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT LT_LIST.&lt;/P&gt;&lt;P&gt;      READ TABLE LT_VBKD WITH KEY&lt;/P&gt;&lt;P&gt;          VBELN = LT_LIST-VBELN BINARY SEARCH.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        DELETE LT_LIST.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        MOVE LT_VBKD-BSTKD TO LT_LIST-BSTKD.&lt;/P&gt;&lt;P&gt;        MODIFY LT_LIST.&lt;/P&gt;&lt;P&gt;        CLEAR LT_VBKD.&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;***GET OTHER DATA&lt;/P&gt;&lt;P&gt;  IF NOT LT_LIST[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT * INTO TABLE LT_VBPA&lt;/P&gt;&lt;P&gt;        FROM VBPA&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN LT_LIST&lt;/P&gt;&lt;P&gt;        WHERE VBELN = LT_LIST-VBELN&lt;/P&gt;&lt;P&gt;          AND POSNR = '000000'&lt;/P&gt;&lt;P&gt;          AND PARVW = 'WE'.&lt;/P&gt;&lt;P&gt;    SORT LT_VBPA BY VBELN.&lt;/P&gt;&lt;P&gt;    SELECT * INTO TABLE LT_VBFA&lt;/P&gt;&lt;P&gt;        FROM VBFA&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN LT_LIST&lt;/P&gt;&lt;P&gt;        WHERE VBELV = LT_LIST-VBELN&lt;/P&gt;&lt;P&gt;          AND POSNV = LT_LIST-POSNR&lt;/P&gt;&lt;P&gt;          AND ( VBTYP_N = 'T'        "Returns delivery for order&lt;/P&gt;&lt;P&gt;             OR VBTYP_N = 'J' ).     "Delivery&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      SORT LT_VBFA BY VBELN POSNN.&lt;/P&gt;&lt;P&gt;      SELECT * INTO TABLE LT_LIPS&lt;/P&gt;&lt;P&gt;          FROM LIPS&lt;/P&gt;&lt;P&gt;          FOR ALL ENTRIES IN LT_VBFA&lt;/P&gt;&lt;P&gt;          WHERE VBELN = LT_VBFA-VBELN&lt;/P&gt;&lt;P&gt;            AND POSNR = LT_VBFA-POSNN.&lt;/P&gt;&lt;P&gt;      SORT LT_LIPS BY VBELN POSNR.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GET MATERIAL MASTER&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT * INTO TABLE LT_MARA&lt;/P&gt;&lt;P&gt;        FROM MARA&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN LT_LIST&lt;/P&gt;&lt;P&gt;        WHERE MATNR = LT_LIST-MATNR.&lt;/P&gt;&lt;P&gt;    SORT LT_MARA BY MATNR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GET MATERIAL DESC.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT * INTO TABLE LT_MAKT&lt;/P&gt;&lt;P&gt;        FROM MAKT&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN LT_MARA&lt;/P&gt;&lt;P&gt;        WHERE MATNR = LT_MARA-MATNR&lt;/P&gt;&lt;P&gt;          AND SPRAS = '1'.&lt;/P&gt;&lt;P&gt;    SORT LT_MAKT BY MATNR.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  GET CUSTOMER DESC.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT * INTO TABLE LT_KNA1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       FROM KNA1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       FOR ALL ENTRIES IN LT_LIST&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       WHERE KUNNR = LT_LIST-KUNNR.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SORT LT_KNA1 BY KUNNR.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;**PROCESS QUANTITY WEIGHT VOLUME&lt;/P&gt;&lt;P&gt;  LOOP AT LT_LIST.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  MATERIAL DESC&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE LT_MAKT WITH KEY&lt;/P&gt;&lt;P&gt;          MATNR = LT_LIST-MATNR BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      MOVE LT_MAKT-MAKTX TO LT_LIST-MAKTX.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CUSTOMER NAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   READ TABLE LT_KNA1 WITH KEY&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         KUNNR = LT_LIST-KUNNR BINARY SEARCH.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF SY-SUBRC = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE: LT_KNA1-NAME1 TO LT_LIST-NAME1,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           LT_KNA1-SORTL TO LT_LIST-SORTL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GET SHIP-TO PART&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE LT_VBPA WITH KEY&lt;/P&gt;&lt;P&gt;        VBELN = LT_LIST-VBELN BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      MOVE LT_VBPA-KUNNR TO LT_LIST-SKUNNR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GET SHIP-TO PART NAME&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR: L_REGIO,L_LAND1.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE NAME1 SORTL REGIO LAND1&lt;/P&gt;&lt;P&gt;          INTO (LT_LIST-NAME1,LT_LIST-SORTL,&lt;/P&gt;&lt;P&gt;                L_REGIO,L_LAND1)&lt;/P&gt;&lt;P&gt;          FROM KNA1&lt;/P&gt;&lt;P&gt;          WHERE KUNNR = LT_LIST-SKUNNR.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE BEZEI INTO LT_LIST-BEZEI&lt;/P&gt;&lt;P&gt;          FROM T005U&lt;/P&gt;&lt;P&gt;          WHERE BLAND = L_REGIO&lt;/P&gt;&lt;P&gt;            AND SPRAS = '1'&lt;/P&gt;&lt;P&gt;            AND LAND1 = L_LAND1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  BOM ITEM NO QUANTITY&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF NOT LT_LIST-UEPOS IS INITIAL.&lt;/P&gt;&lt;P&gt;      CLEAR LT_LIST-KWMENG.&lt;/P&gt;&lt;P&gt;      MODIFY LT_LIST.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GET DN QUANTITY&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT LT_VBFA WHERE&lt;/P&gt;&lt;P&gt;          VBELV = LT_LIST-VBELN AND&lt;/P&gt;&lt;P&gt;          POSNV = LT_LIST-POSNR.&lt;/P&gt;&lt;P&gt;      READ TABLE LT_LIPS WITH KEY&lt;/P&gt;&lt;P&gt;          VBELN = LT_VBFA-VBELN&lt;/P&gt;&lt;P&gt;          POSNR = LT_VBFA-POSNN BINARY SEARCH.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;        LT_LIST-LFIMG = LT_LIST-LFIMG + LT_LIPS-LFIMG.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GET OPEN SO QUANTITY WEIGHT VOLUME&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LT_LIST-OKWMENG = LT_LIST-KWMENG - LT_LIST-LFIMG.&lt;/P&gt;&lt;P&gt;    READ TABLE LT_MARA WITH KEY&lt;/P&gt;&lt;P&gt;          MATNR = LT_LIST-MATNR BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      LT_LIST-OBRGEW = LT_LIST-OKWMENG * LT_MARA-BRGEW.&lt;/P&gt;&lt;P&gt;      LT_LIST-OVOLUM = LT_LIST-OKWMENG * LT_MARA-VOLUM.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    MODIFY LT_LIST.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*****GET GT_LIST&lt;/P&gt;&lt;P&gt;  LOOP AT LT_LIST.&lt;/P&gt;&lt;P&gt;    MOVE LT_LIST TO GT_LIST.&lt;/P&gt;&lt;P&gt;    IF P_CHECK = 'X' AND LT_LIST-OKWMENG = 0.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    APPEND GT_LIST.&lt;/P&gt;&lt;P&gt;    CLEAR GT_LIST.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 19 Oct 2007 03:20:39 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-10-19T03:20:39Z</dc:date>
    <item>
      <title>Performance problem?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2955602#M697179</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a program. about 400 lines. it takes 30 mins to get the result. The most serious  proplem is when it is runing, others can not do anything and the system turns to be very slow............&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Help!!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anyone give some advice???&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Oct 2007 02:45:58 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2955602#M697179</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-19T02:45:58Z</dc:date>
    </item>
    <item>
      <title>Re: Performance problem?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2955603#M697180</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Please let us know the process of the program and the Select queries that you are using.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you believe your queries are correct then it could just be a one-off case in which case you need to contact your Basis people to check load on the system.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Nishant&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Oct 2007 02:48:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2955603#M697180</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-19T02:48:21Z</dc:date>
    </item>
    <item>
      <title>Re: Performance problem?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2955604#M697181</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Amanda, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If your system starts to slow whenever you run your program then it is your programs fault. You might want to check your select statements in your program. This is one of the major culprits on why programs are very slow.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;P.S. Please award points if it helps...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Oct 2007 02:49:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2955604#M697181</guid>
      <dc:creator>aris_hidalgo</dc:creator>
      <dc:date>2007-10-19T02:49:48Z</dc:date>
    </item>
    <item>
      <title>Re: Performance problem?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2955605#M697182</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;check your all data fetching &amp;lt;b&amp;gt;select&amp;lt;/b&amp;gt; statements and do the &amp;lt;b&amp;gt;Extended program check&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;SELECT&lt;/P&gt;&lt;P&gt;&amp;#149;	In a SELECT statement, only the fields that are needed are selected in the order that they reside on the database, thus network load is considerably less. The number of fields can be restricted in two ways using a field list in the SELECT clause of the statement or by using a view defined in ABAP Dictionary.  The usage of view has the advantage of better reusability. Besides this the use of INTO CORRESPONDING must not be used as it is degrades the performance&lt;/P&gt;&lt;P&gt;	SELECT SINGLE&lt;/P&gt;&lt;P&gt;&amp;#149;	SELECT SINGLE is used instead of SELECT-ENDSELECT loop if full primary key is known. Otherwise, use Up to 1 Rows. SELECT SINGLE requires one communication with the database system.&lt;/P&gt;&lt;P&gt;	SELECT UP TO .. ROWS&lt;/P&gt;&lt;P&gt;&amp;#149;	SELECT UP TO 1 ROWS is faster than SELECT SINGLE  as the SELECT Single takes more time in the absence of all the primary keys specified in the queries. Where ever applicable try to limit the database result set to a fixed number of selections by specifying the number of records in the UP TO &amp;lt;n&amp;gt; ROWS part.&lt;/P&gt;&lt;P&gt;	WHERE-clause&lt;/P&gt;&lt;P&gt;&amp;#149;	Always specify the conditions in the WHERE-clause instead of checking them with check-statements, the database system can then use an index (if possible) and the network load is considerably less.  You should not check the conditions with the CHECK statement because the contents of the whole table must be read from the database files into DBMS cache and transferred over the network. If the conditions are specified in the where clause DBMS reads exactly the needed data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	SELECT using an aggregate function&lt;/P&gt;&lt;P&gt;&amp;#149;	Use a select list with aggregate functions instead of checking and computing, when try to find the maximum, minimum, sum and average value or the count of a database column, thus network load is considerably less.	SELECT + INTO TABLE&lt;/P&gt;&lt;P&gt;&amp;#149;	Always select into an internal table, except when the table will be very large (i.e., when the internal tables 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;	ARRAY INSERT&lt;/P&gt;&lt;P&gt;&amp;#149;	Whenever possible, use array operations instead of single-row operations to modify your database tables. The frequent communication between the application program and database system produces considerable overhead	ORDER BY &amp;amp; SORT&lt;/P&gt;&lt;P&gt;&amp;#149;	ORDER BY statements is used in SELECT only if it can use an index else sorting is effective by reading into an internal table and use the SORT statement in the program.                  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rewards if useful...............&lt;/P&gt;&lt;P&gt;Minal&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Oct 2007 02:50:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2955605#M697182</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-19T02:50:59Z</dc:date>
    </item>
    <item>
      <title>Re: Performance problem?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2955606#M697183</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;can you paste your code here ?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Oct 2007 02:53:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2955606#M697183</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-19T02:53:49Z</dc:date>
    </item>
    <item>
      <title>Re: Performance problem?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2955607#M697184</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;SELECT VBAK~AUDAT VBAK~KUNNR VBAK~VBELN&lt;/P&gt;&lt;P&gt;         VBAP~POSNR VBAP~MATNR VBAP~WERKS&lt;/P&gt;&lt;P&gt;         VBAP~KWMENG VBAP~UEPOS&lt;/P&gt;&lt;P&gt;      INTO CORRESPONDING FIELDS OF TABLE LT_LIST&lt;/P&gt;&lt;P&gt;      FROM VBAK&lt;/P&gt;&lt;P&gt;      INNER JOIN VBAP ON&lt;/P&gt;&lt;P&gt;      VBAK~VBELN = VBAP~VBELN&lt;/P&gt;&lt;P&gt;      WHERE VBAK~VBELN IN S_VBELN&lt;/P&gt;&lt;P&gt;        AND VBAK~AUART IN S_AUART&lt;/P&gt;&lt;P&gt;        AND VBAK~VKORG = P_VKORG&lt;/P&gt;&lt;P&gt;        AND VBAK~VTWEG IN S_VTWEG&lt;/P&gt;&lt;P&gt;        AND VBAK~SPART IN S_SPART&lt;/P&gt;&lt;P&gt;        AND VBAK~AUDAT IN S_AUDAT&lt;/P&gt;&lt;P&gt;        AND VBAP~WERKS IN S_WERKS&lt;/P&gt;&lt;P&gt;        AND VBAK~KUNNR IN S_KUNNR&lt;/P&gt;&lt;P&gt;        AND VBAP~MATNR IN S_MATNR&lt;/P&gt;&lt;P&gt;        AND VBAP~ABGRU = ''.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    SELECT * INTO TABLE LT_VBKD&lt;/P&gt;&lt;P&gt;        FROM VBKD&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN LT_LIST&lt;/P&gt;&lt;P&gt;        WHERE VBELN = LT_LIST-VBELN&lt;/P&gt;&lt;P&gt;          AND POSNR = '000000'&lt;/P&gt;&lt;P&gt;          AND BSTKD IN S_BSTKD.&lt;/P&gt;&lt;P&gt;    SORT LT_VBKD BY VBELN POSNR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CHECK BSTKD&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT LT_LIST.&lt;/P&gt;&lt;P&gt;      READ TABLE LT_VBKD WITH KEY&lt;/P&gt;&lt;P&gt;          VBELN = LT_LIST-VBELN BINARY SEARCH.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        DELETE LT_LIST.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        MOVE LT_VBKD-BSTKD TO LT_LIST-BSTKD.&lt;/P&gt;&lt;P&gt;        MODIFY LT_LIST.&lt;/P&gt;&lt;P&gt;        CLEAR LT_VBKD.&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;***GET OTHER DATA&lt;/P&gt;&lt;P&gt;  IF NOT LT_LIST[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT * INTO TABLE LT_VBPA&lt;/P&gt;&lt;P&gt;        FROM VBPA&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN LT_LIST&lt;/P&gt;&lt;P&gt;        WHERE VBELN = LT_LIST-VBELN&lt;/P&gt;&lt;P&gt;          AND POSNR = '000000'&lt;/P&gt;&lt;P&gt;          AND PARVW = 'WE'.&lt;/P&gt;&lt;P&gt;    SORT LT_VBPA BY VBELN.&lt;/P&gt;&lt;P&gt;    SELECT * INTO TABLE LT_VBFA&lt;/P&gt;&lt;P&gt;        FROM VBFA&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN LT_LIST&lt;/P&gt;&lt;P&gt;        WHERE VBELV = LT_LIST-VBELN&lt;/P&gt;&lt;P&gt;          AND POSNV = LT_LIST-POSNR&lt;/P&gt;&lt;P&gt;          AND ( VBTYP_N = 'T'        "Returns delivery for order&lt;/P&gt;&lt;P&gt;             OR VBTYP_N = 'J' ).     "Delivery&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      SORT LT_VBFA BY VBELN POSNN.&lt;/P&gt;&lt;P&gt;      SELECT * INTO TABLE LT_LIPS&lt;/P&gt;&lt;P&gt;          FROM LIPS&lt;/P&gt;&lt;P&gt;          FOR ALL ENTRIES IN LT_VBFA&lt;/P&gt;&lt;P&gt;          WHERE VBELN = LT_VBFA-VBELN&lt;/P&gt;&lt;P&gt;            AND POSNR = LT_VBFA-POSNN.&lt;/P&gt;&lt;P&gt;      SORT LT_LIPS BY VBELN POSNR.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GET MATERIAL MASTER&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT * INTO TABLE LT_MARA&lt;/P&gt;&lt;P&gt;        FROM MARA&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN LT_LIST&lt;/P&gt;&lt;P&gt;        WHERE MATNR = LT_LIST-MATNR.&lt;/P&gt;&lt;P&gt;    SORT LT_MARA BY MATNR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GET MATERIAL DESC.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT * INTO TABLE LT_MAKT&lt;/P&gt;&lt;P&gt;        FROM MAKT&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN LT_MARA&lt;/P&gt;&lt;P&gt;        WHERE MATNR = LT_MARA-MATNR&lt;/P&gt;&lt;P&gt;          AND SPRAS = '1'.&lt;/P&gt;&lt;P&gt;    SORT LT_MAKT BY MATNR.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  GET CUSTOMER DESC.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT * INTO TABLE LT_KNA1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       FROM KNA1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       FOR ALL ENTRIES IN LT_LIST&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       WHERE KUNNR = LT_LIST-KUNNR.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SORT LT_KNA1 BY KUNNR.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;**PROCESS QUANTITY WEIGHT VOLUME&lt;/P&gt;&lt;P&gt;  LOOP AT LT_LIST.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  MATERIAL DESC&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE LT_MAKT WITH KEY&lt;/P&gt;&lt;P&gt;          MATNR = LT_LIST-MATNR BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      MOVE LT_MAKT-MAKTX TO LT_LIST-MAKTX.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CUSTOMER NAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   READ TABLE LT_KNA1 WITH KEY&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         KUNNR = LT_LIST-KUNNR BINARY SEARCH.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF SY-SUBRC = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE: LT_KNA1-NAME1 TO LT_LIST-NAME1,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           LT_KNA1-SORTL TO LT_LIST-SORTL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GET SHIP-TO PART&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE LT_VBPA WITH KEY&lt;/P&gt;&lt;P&gt;        VBELN = LT_LIST-VBELN BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      MOVE LT_VBPA-KUNNR TO LT_LIST-SKUNNR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GET SHIP-TO PART NAME&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR: L_REGIO,L_LAND1.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE NAME1 SORTL REGIO LAND1&lt;/P&gt;&lt;P&gt;          INTO (LT_LIST-NAME1,LT_LIST-SORTL,&lt;/P&gt;&lt;P&gt;                L_REGIO,L_LAND1)&lt;/P&gt;&lt;P&gt;          FROM KNA1&lt;/P&gt;&lt;P&gt;          WHERE KUNNR = LT_LIST-SKUNNR.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE BEZEI INTO LT_LIST-BEZEI&lt;/P&gt;&lt;P&gt;          FROM T005U&lt;/P&gt;&lt;P&gt;          WHERE BLAND = L_REGIO&lt;/P&gt;&lt;P&gt;            AND SPRAS = '1'&lt;/P&gt;&lt;P&gt;            AND LAND1 = L_LAND1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  BOM ITEM NO QUANTITY&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF NOT LT_LIST-UEPOS IS INITIAL.&lt;/P&gt;&lt;P&gt;      CLEAR LT_LIST-KWMENG.&lt;/P&gt;&lt;P&gt;      MODIFY LT_LIST.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GET DN QUANTITY&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT LT_VBFA WHERE&lt;/P&gt;&lt;P&gt;          VBELV = LT_LIST-VBELN AND&lt;/P&gt;&lt;P&gt;          POSNV = LT_LIST-POSNR.&lt;/P&gt;&lt;P&gt;      READ TABLE LT_LIPS WITH KEY&lt;/P&gt;&lt;P&gt;          VBELN = LT_VBFA-VBELN&lt;/P&gt;&lt;P&gt;          POSNR = LT_VBFA-POSNN BINARY SEARCH.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;        LT_LIST-LFIMG = LT_LIST-LFIMG + LT_LIPS-LFIMG.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GET OPEN SO QUANTITY WEIGHT VOLUME&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LT_LIST-OKWMENG = LT_LIST-KWMENG - LT_LIST-LFIMG.&lt;/P&gt;&lt;P&gt;    READ TABLE LT_MARA WITH KEY&lt;/P&gt;&lt;P&gt;          MATNR = LT_LIST-MATNR BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      LT_LIST-OBRGEW = LT_LIST-OKWMENG * LT_MARA-BRGEW.&lt;/P&gt;&lt;P&gt;      LT_LIST-OVOLUM = LT_LIST-OKWMENG * LT_MARA-VOLUM.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    MODIFY LT_LIST.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*****GET GT_LIST&lt;/P&gt;&lt;P&gt;  LOOP AT LT_LIST.&lt;/P&gt;&lt;P&gt;    MOVE LT_LIST TO GT_LIST.&lt;/P&gt;&lt;P&gt;    IF P_CHECK = 'X' AND LT_LIST-OKWMENG = 0.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    APPEND GT_LIST.&lt;/P&gt;&lt;P&gt;    CLEAR GT_LIST.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Oct 2007 03:20:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2955607#M697184</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-19T03:20:39Z</dc:date>
    </item>
    <item>
      <title>Re: Performance problem?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2955608#M697185</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Amanda,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Some points:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Don't use Select corresponding.&lt;/P&gt;&lt;P&gt;If possible either select all the fields or change the structure . This is b'coz Select into corresponding is very bad performaning code piece.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Second If you know that the data records being read are not more than 200 records then don't sort and use binary search. This is because for internal tables of smaller size Sorted table is actually not good.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * INTO TABLE LT_VBFA&lt;/P&gt;&lt;P&gt;FROM VBFA&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN LT_LIST&lt;/P&gt;&lt;P&gt;WHERE VBELV = LT_LIST-VBELN&lt;/P&gt;&lt;P&gt;AND POSNV = LT_LIST-POSNR&lt;/P&gt;&lt;P&gt;AND ( VBTYP_N = 'T' "Returns delivery for order&lt;/P&gt;&lt;P&gt;OR VBTYP_N = 'J' ). "Delivery&lt;/P&gt;&lt;P&gt; Don't use 'OR' in the select. You can use IN (T,J).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Remove &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE NAME1 SORTL REGIO LAND1&lt;/P&gt;&lt;P&gt;INTO (LT_LIST-NAME1,LT_LIST-SORTL,&lt;/P&gt;&lt;P&gt;L_REGIO,L_LAND1)&lt;/P&gt;&lt;P&gt;FROM KNA1&lt;/P&gt;&lt;P&gt;WHERE KUNNR = LT_LIST-SKUNNR.&lt;/P&gt;&lt;P&gt;SELECT SINGLE BEZEI INTO LT_LIST-BEZEI&lt;/P&gt;&lt;P&gt;FROM T005U&lt;/P&gt;&lt;P&gt;WHERE BLAND = L_REGIO&lt;/P&gt;&lt;P&gt;AND SPRAS = '1'&lt;/P&gt;&lt;P&gt;AND LAND1 = L_LAND1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;these from inside the loop and put it outside since this is going to fetch data in each loop which will increase data base hits.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope these things will help you&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Nishant&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Oct 2007 05:02:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2955608#M697185</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-19T05:02:25Z</dc:date>
    </item>
  </channel>
</rss>

