<?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: Urgent - Performance Optimization help in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478020#M558005</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;It seems that you are doing this select query inside you loop. Please move this query from this loop and put it before your loop. And inside the loop, just read the appropriate data using the key whatever you want. Yes, you need to add some fields in your select query and create an internal table for that, but that will improve your performance drastically. And yes, dont forget to use the INDEX fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sandip&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 27 Jun 2007 20:16:43 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-06-27T20:16:43Z</dc:date>
    <item>
      <title>Urgent - Performance Optimization help</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478016#M558001</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;My current program has 12 fields, each fields being a different month. So field 12 is the current month, field 11 is last month and so on until field 1 (current - 11.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In there, I also have to subtract one of our customers invoices using the following formula:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; SELECT SUM( FKIMG )&lt;/P&gt;&lt;P&gt;    FROM VBRP INNER JOIN VBAK&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ON VBRP&lt;SUB&gt;VBELN = VBAP&lt;/SUB&gt;VBELN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    AND VBRP&lt;SUB&gt;POSNR = VBAP&lt;/SUB&gt;POSNR&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        INNER JOIN VBAK&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ON VBRP&lt;SUB&gt;VBELN = VBAK&lt;/SUB&gt;VBELN&lt;/P&gt;&lt;P&gt;    INTO GALLO_SUB&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHERE VBRP~MATNR = I_ALV-MATNR&lt;/P&gt;&lt;P&gt;        AND VBRP~WERKS = I_ALV-WERKS&lt;/P&gt;&lt;P&gt;        AND VBRP~ERDAT IN I_MONTH_RANGE&lt;/P&gt;&lt;P&gt;        AND VBRP~PSTYV = 'TAB'&lt;/P&gt;&lt;P&gt;        AND VBAK~AUART = 'ZDS'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PAST_MONTH_VALUE = PAST_MONTH_VALUE - INVOICE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On the screen, the user enters 4 plants (select option) and a vendor (there are other selection criteria, such as matnr, but for this case, we just have the plants and a vendor.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For some reason, the code above keeps increasing in time spent every time the code is accessed. For example, the 1st time is 158 milliseconds, Then 175 milliseconds and so on. It finishes at 2 seconds, which make the program time out (600 seconds restriction for our sap system.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why does it increase each time? This is accessed for the looping month. So say the current month and year is 06/2007. 1st we get the monthly sales and then we get the invoices and calculate the difference. Its loop at the 12 months for each material (for this, i am guessing each material that is found in the vendor.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;John&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is an extract of the log:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT                                                                           &lt;/P&gt;&lt;P&gt;  SUM( T_00."FKIMG" )                                                            &lt;/P&gt;&lt;P&gt;FROM                                                                                &lt;/P&gt;&lt;P&gt;"VBRP" T_00 INNER JOIN "VBAP" T_01 ON T_01."MANDT" = @P000 AND T_00."VBELN" =  &lt;/P&gt;&lt;P&gt;  T_01."VBELN" AND T_00."POSNR" = T_01."POSNR" INNER JOIN "VBAK" T_02 ON T_02."M &lt;/P&gt;&lt;P&gt;  ANDT" = @P001 AND T_00."VBELN" = T_02."VBELN"                                  &lt;/P&gt;&lt;P&gt;WHERE                                                                            &lt;/P&gt;&lt;P&gt;  T_00."MANDT" = @P002 AND T_01."MATNR" = @P003 AND T_01."WERKS" = @P004 AND (   &lt;/P&gt;&lt;P&gt;  T_00."ERDAT" BETWEEN @P005 AND @P006 OR T_00."ERDAT" BETWEEN @P007 AND @P008   &lt;/P&gt;&lt;P&gt;  OR T_00."ERDAT" BETWEEN @P009 AND @P00A OR T_00."ERDAT" BETWEEN @P00B AND      &lt;/P&gt;&lt;P&gt;  @P00C OR T_00."ERDAT" BETWEEN @P00D AND @P00E OR T_00."ERDAT" BETWEEN @P00F    &lt;/P&gt;&lt;P&gt;  AND @P010 OR T_00."ERDAT" BETWEEN @P011 AND @P012 OR T_00."ERDAT" BETWEEN      &lt;/P&gt;&lt;P&gt;  @P013 AND @P014 OR T_00."ERDAT" BETWEEN @P015 AND @P016 OR T_00."ERDAT"        &lt;/P&gt;&lt;P&gt;  BETWEEN @P017 AND @P018 OR T_00."ERDAT" BETWEEN @P019 AND @P01A OR             &lt;/P&gt;&lt;P&gt;  T_00."ERDAT" BETWEEN @P01B AND @P01C OR T_00."ERDAT" BETWEEN @P01D AND @P01E   &lt;/P&gt;&lt;P&gt;  OR T_00."ERDAT" BETWEEN @P01F AND @P020 OR T_00."ERDAT" BETWEEN @P021 AND      &lt;/P&gt;&lt;P&gt;  @P022 OR T_00."ERDAT" BETWEEN @P023 AND @P024 OR T_00."ERDAT" BETWEEN @P025    &lt;/P&gt;&lt;P&gt;  AND @P026 OR T_00."ERDAT" BETWEEN @P027 AND @P028 OR T_00."ERDAT" BETWEEN      &lt;/P&gt;&lt;P&gt;  @P029 AND @P02A OR T_00."ERDAT" BETWEEN @P02B AND @P02C OR T_00."ERDAT"        &lt;/P&gt;&lt;P&gt;  BETWEEN @P02D AND @P02E OR T_00."ERDAT" BETWEEN @P02F AND @P030 OR             &lt;/P&gt;&lt;P&gt;  T_00."ERDAT" BETWEEN @P031 AND @P032 OR T_00."ERDAT" BETWEEN @P033 AND @P034   &lt;/P&gt;&lt;P&gt;  OR T_00."ERDAT" BETWEEN @P035 AND @P036 OR T_00."ERDAT" BETWEEN @P037 AND      &lt;/P&gt;&lt;P&gt;  @P038 OR T_00."ERDAT" BETWEEN @P039 AND @P03A OR T_00."ERDAT" BETWEEN @P03B    &lt;/P&gt;&lt;P&gt;  AND @P03C OR T_00."ERDAT" BETWEEN @P03D AND @P03E OR T_00."ERDAT" BETWEEN      &lt;/P&gt;&lt;P&gt;  @P03F AND @P040 OR T_00."ERDAT" BETWEEN @P041 AND @P042 OR T_00."ERDAT"        &lt;/P&gt;&lt;P&gt;  BETWEEN @P043 AND @P044 OR T_00."ERDAT" BETWEEN @P045 AND @P046 OR             &lt;/P&gt;&lt;P&gt;  T_00."ERDAT" BETWEEN @P047 AND @P048 OR T_00."ERDAT" BETWEEN @P049 AND @P04A   &lt;/P&gt;&lt;P&gt;  OR T_00."ERDAT" BETWEEN @P04B AND @P04C OR T_00."ERDAT" BETWEEN @P04D AND      &lt;/P&gt;&lt;P&gt;  @P04E OR T_00."ERDAT" BETWEEN @P04F AND @P050 OR T_00."ERDAT" BETWEEN @P051    &lt;/P&gt;&lt;P&gt;  AND @P052 OR T_00."ERDAT" BETWEEN @P053 AND @P054 OR T_00."ERDAT" BETWEEN      &lt;/P&gt;&lt;P&gt;  @P055 AND @P056 OR T_00."ERDAT" BETWEEN @P057 AND @P058 OR T_00."ERDAT"        &lt;/P&gt;&lt;P&gt;  BETWEEN @P059 AND @P05A OR T_00."ERDAT" BETWEEN @P05B AND @P05C OR             &lt;/P&gt;&lt;P&gt;  T_00."ERDAT" BETWEEN @P05D AND @P05E OR T_00."ERDAT" BETWEEN @P05F AND @P060   &lt;/P&gt;&lt;P&gt;  OR T_00."ERDAT" BETWEEN @P061 AND @P062 OR T_00."ERDAT" BETWEEN @P063 AND      &lt;/P&gt;&lt;P&gt;  @P064 OR T_00."ERDAT" BETWEEN @P065 AND @P066 OR T_00."ERDAT" BETWEEN @P067    &lt;/P&gt;&lt;P&gt;AND @P068 OR T_00."ERDAT" BETWEEN @P069 AND @P06A OR T_00."ERDAT" BETWEEN     &lt;/P&gt;&lt;P&gt;@P06B AND @P06C OR T_00."ERDAT" BETWEEN @P06D AND @P06E OR T_00."ERDAT"       &lt;/P&gt;&lt;P&gt;BETWEEN @P06F AND @P070 OR T_00."ERDAT" BETWEEN @P071 AND @P072 OR            &lt;/P&gt;&lt;P&gt;T_00."ERDAT" BETWEEN @P073 AND @P074 OR T_00."ERDAT" BETWEEN @P075 AND @P076  &lt;/P&gt;&lt;P&gt;OR T_00."ERDAT" BETWEEN @P077 AND @P078 OR T_00."ERDAT" BETWEEN @P079 AND     &lt;/P&gt;&lt;P&gt;@P07A OR T_00."ERDAT" BETWEEN @P07B AND @P07C OR T_00."ERDAT" BETWEEN @P07D   &lt;/P&gt;&lt;P&gt;AND @P07E OR T_00."ERDAT" BETWEEN @P07F AND @P080 OR T_00."ERDAT" BETWEEN     &lt;/P&gt;&lt;P&gt;@P081 AND @P082 OR T_00."ERDAT" BETWEEN @P083 AND @P084 OR T_00."ERDAT"       &lt;/P&gt;&lt;P&gt;BETWEEN @P085 AND @P086 OR T_00."ERDAT" BETWEEN @P087 AND @P088 OR            &lt;/P&gt;&lt;P&gt;T_00."ERDAT" BETWEEN @P089 AND @P08A OR T_00."ERDAT" BETWEEN @P08B AND @P08C  &lt;/P&gt;&lt;P&gt;OR T_00."ERDAT" BETWEEN @P08D AND @P08E OR T_00."ERDAT" BETWEEN @P08F AND     &lt;/P&gt;&lt;P&gt;@P090 OR T_00."ERDAT" BETWEEN @P091 AND @P092 OR T_00."ERDAT" BETWEEN @P093   &lt;/P&gt;&lt;P&gt;AND @P094 OR T_00."ERDAT" BETWEEN @P095 AND @P096 OR T_00."ERDAT" BETWEEN     &lt;/P&gt;&lt;P&gt;@P097 AND @P098 OR T_00."ERDAT" BETWEEN @P099 AND @P09A OR T_00."ERDAT"       &lt;/P&gt;&lt;P&gt;BETWEEN @P09B AND @P09C OR T_00."ERDAT" BETWEEN @P09D AND @P09E OR            &lt;/P&gt;&lt;P&gt;T_00."ERDAT" BETWEEN @P09F AND @P0A0 OR T_00."ERDAT" BETWEEN @P0A1 AND @P0A2  &lt;/P&gt;&lt;P&gt;OR T_00."ERDAT" BETWEEN @P0A3 AND @P0A4 OR T_00."ERDAT" BETWEEN @P0A5 AND     &lt;/P&gt;&lt;P&gt;@P0A6 OR T_00."ERDAT" BETWEEN @P0A7 AND @P0A8 OR T_00."ERDAT" BETWEEN @P0A9   &lt;/P&gt;&lt;P&gt;AND @P0AA OR T_00."ERDAT" BETWEEN @P0AB AND @P0AC OR T_00."ERDAT" BETWEEN     &lt;/P&gt;&lt;P&gt;@P0AD AND @P0AE OR T_00."ERDAT" BETWEEN @P0AF AND @P0B0 OR T_00."ERDAT"       &lt;/P&gt;&lt;P&gt;BETWEEN @P0B1 AND @P0B2 OR T_00."ERDAT" BETWEEN @P0B3 AND @P0B4 OR            &lt;/P&gt;&lt;P&gt;T_00."ERDAT" BETWEEN @P0B5 AND @P0B6 OR T_00."ERDAT" BETWEEN @P0B7 AND @P0B8  &lt;/P&gt;&lt;P&gt;OR T_00."ERDAT" BETWEEN @P0B9 AND @P0BA OR T_00."ERDAT" BETWEEN @P0BB AND     &lt;/P&gt;&lt;P&gt;@P0BC OR T_00."ERDAT" BETWEEN @P0BD AND @P0BE OR T_00."ERDAT" BETWEEN @P0BF   &lt;/P&gt;&lt;P&gt;AND @P0C0 OR T_00."ERDAT" BETWEEN @P0C1 AND @P0C2 OR T_00."ERDAT" BETWEEN     &lt;/P&gt;&lt;P&gt;@P0C3 AND @P0C4 OR T_00."ERDAT" BETWEEN @P0C5 AND @P0C6 OR T_00."ERDAT"       &lt;/P&gt;&lt;P&gt;BETWEEN @P0C7 AND @P0C8 OR T_00."ERDAT" BETWEEN @P0C9 AND @P0CA OR            &lt;/P&gt;&lt;P&gt;T_00."ERDAT" BETWEEN @P0CB AND @P0CC OR T_00."ERDAT" BETWEEN @P0CD AND @P0CE  &lt;/P&gt;&lt;P&gt;OR T_00."ERDAT" BETWEEN @P0CF AND @P0D0 OR T_00."ERDAT" BETWEEN @P0D1 AND     &lt;/P&gt;&lt;P&gt;@P0D2 OR T_00."ERDAT" BETWEEN @P0D3 AND @P0D4 OR T_00."ERDAT" BETWEEN @P0D5   &lt;/P&gt;&lt;P&gt;AND @P0D6 OR T_00."ERDAT" BETWEEN @P0D7 AND @P0D8 OR T_00."ERDAT" BETWEEN     &lt;/P&gt;&lt;P&gt;@P0D9 AND @P0DA OR T_00."ERDAT" BETWEEN @P0DB AND @P0DC OR T_00."ERDAT"       &lt;/P&gt;&lt;P&gt;BETWEEN @P0DD AND @P0DE OR T_00."ERDAT" BETWEEN @P0DF AND @P0E0 OR            &lt;/P&gt;&lt;P&gt;T_00."ERDAT" BETWEEN @P0E1 AND @P0E2 OR T_00."ERDAT" BETWEEN @P0E3 AND @P0E4  &lt;/P&gt;&lt;P&gt;OR T_00."ERDAT" BETWEEN @P0E5 AND @P0E6 OR T_00."ERDAT" BETWEEN @P0E7 AND     &lt;/P&gt;&lt;P&gt;@P0E8 OR T_00."ERDAT" BETWEEN @P0E9 AND @P0EA OR T_00."ERDAT" BETWEEN @P0EB   &lt;/P&gt;&lt;P&gt;AND @P0EC OR T_00."ERDAT" BETWEEN @P0ED AND @P0EE OR T_00."ERDAT" BETWEEN     &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Variable                       &lt;/P&gt;&lt;P&gt;                               &lt;/P&gt;&lt;P&gt;A0(CH,3)  = 100                &lt;/P&gt;&lt;P&gt;A1(CH,3)  = 100                &lt;/P&gt;&lt;P&gt;A2(CH,3)  = 100                &lt;/P&gt;&lt;P&gt;A3(CH,18) = 000000000000051706 &lt;/P&gt;&lt;P&gt;A4(CH,4)  = 1020               &lt;/P&gt;&lt;P&gt;A5(NU,8)  = 20060701           &lt;/P&gt;&lt;P&gt;A6(NU,8)  = 20060731           &lt;/P&gt;&lt;P&gt;A7(NU,8)  = 20060801           &lt;/P&gt;&lt;P&gt;A8(NU,8)  = 20060831           &lt;/P&gt;&lt;P&gt;A9(NU,8)  = 20060901           &lt;/P&gt;&lt;P&gt;A10(NU,8)  = 20060931          &lt;/P&gt;&lt;P&gt;A11(NU,8)  = 20061001          &lt;/P&gt;&lt;P&gt;A12(NU,8)  = 20061031          &lt;/P&gt;&lt;P&gt;A13(NU,8)  = 20061101          &lt;/P&gt;&lt;P&gt;A14(NU,8)  = 20061131          &lt;/P&gt;&lt;P&gt;A15(NU,8)  = 20061201          &lt;/P&gt;&lt;P&gt;A16(NU,8)  = 20061231          &lt;/P&gt;&lt;P&gt;A17(NU,8)  = 20070101          &lt;/P&gt;&lt;P&gt;A18(NU,8)  = 20070131          &lt;/P&gt;&lt;P&gt;A19(NU,8)  = 20070201          &lt;/P&gt;&lt;P&gt;A20(NU,8)  = 20070231          &lt;/P&gt;&lt;P&gt;A21(NU,8)  = 20070301          &lt;/P&gt;&lt;P&gt;A22(NU,8)  = 20070331          &lt;/P&gt;&lt;P&gt;A23(NU,8)  = 20070401          &lt;/P&gt;&lt;P&gt;A24(NU,8)  = 20070431          &lt;/P&gt;&lt;P&gt;A25(NU,8)  = 20070501          &lt;/P&gt;&lt;P&gt;A26(NU,8)  = 20070531          &lt;/P&gt;&lt;P&gt;A27(NU,8)  = 20060701          &lt;/P&gt;&lt;P&gt;A28(NU,8)  = 20060731          &lt;/P&gt;&lt;P&gt;A29(NU,8)  = 20060801          &lt;/P&gt;&lt;P&gt;A30(NU,8)  = 20060831          &lt;/P&gt;&lt;P&gt;A31(NU,8)  = 20060901          &lt;/P&gt;&lt;P&gt;A32(NU,8)  = 20060931          &lt;/P&gt;&lt;P&gt;A33(NU,8)  = 20061001&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jun 2007 19:50:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478016#M558001</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-27T19:50:05Z</dc:date>
    </item>
    <item>
      <title>Re: Urgent - Performance Optimization help</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478017#M558002</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well, I think the main problem is that the SELECT is not using any index. Use MATNR to select against VAPMA and get the document number there.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also do the SUM outside of the SELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jun 2007 19:56:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478017#M558002</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-27T19:56:53Z</dc:date>
    </item>
    <item>
      <title>Re: Urgent - Performance Optimization help</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478018#M558003</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;Thank you for the tips.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Question: why do the sum outside of the select?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank You,&lt;/P&gt;&lt;P&gt;Stanley&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jun 2007 20:09:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478018#M558003</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-27T20:09:46Z</dc:date>
    </item>
    <item>
      <title>Re: Urgent - Performance Optimization help</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478019#M558004</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;I find the key u are using not a key fields for select&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;VBRP~MATNR = I_ALV-MATNR&lt;/P&gt;&lt;P&gt;AND VBRP~WERKS = I_ALV-WERKS&lt;/P&gt;&lt;P&gt;AND VBRP~ERDAT IN I_MONTH_RANGE&lt;/P&gt;&lt;P&gt;AND VBRP~PSTYV = 'TAB'&lt;/P&gt;&lt;P&gt;AND VBAK~AUART = 'ZDS'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in VBRP the primary key VBELN &amp;amp; POSNR,and could not find any secondary index on MATNR WERKS.......&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aRs&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jun 2007 20:10:00 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478019#M558004</guid>
      <dc:creator>former_member194669</dc:creator>
      <dc:date>2007-06-27T20:10:00Z</dc:date>
    </item>
    <item>
      <title>Re: Urgent - Performance Optimization help</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478020#M558005</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;It seems that you are doing this select query inside you loop. Please move this query from this loop and put it before your loop. And inside the loop, just read the appropriate data using the key whatever you want. Yes, you need to add some fields in your select query and create an internal table for that, but that will improve your performance drastically. And yes, dont forget to use the INDEX fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sandip&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jun 2007 20:16:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478020#M558005</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-27T20:16:43Z</dc:date>
    </item>
    <item>
      <title>Re: Urgent - Performance Optimization help</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478021#M558006</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The database generally is less efficient at doing these aggregate functions. ABAP is faster.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jun 2007 20:22:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478021#M558006</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-27T20:22:24Z</dc:date>
    </item>
    <item>
      <title>Re: Urgent - Performance Optimization help</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478022#M558007</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;I don't think that I will be able to move the select outside the loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you can give me a few tips, that would be great.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is how the report works:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We loop at the internal table holding the data (in this case materials and etc) based on the selection criteria entered.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So inside the loop, we get the sales for the month.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So it sort of looks like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at data_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;month_1 (these are subroutines, where we calculate the sales and invoices for that month, material and plant.)&lt;/P&gt;&lt;P&gt;.....&lt;/P&gt;&lt;P&gt;month12 &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;How could I move the select outside the loop?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;John&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jun 2007 20:24:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478022#M558007</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-27T20:24:32Z</dc:date>
    </item>
    <item>
      <title>Re: Urgent - Performance Optimization help</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478023#M558008</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It would be better if you could post your code. Trying to help from a desription of what the program should be doing can be slow and painful (for everyone;)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jun 2007 20:27:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478023#M558008</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-27T20:27:47Z</dc:date>
    </item>
    <item>
      <title>Re: Urgent - Performance Optimization help</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478024#M558009</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;LOOP AT I_MARC_VALUES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH: RETURN, ATP1, ATP2, OPEN_PO, INBOUND, LS_STYLEROW.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: BAPI_ONHAND, INBOUND_QTY,&lt;/P&gt;&lt;P&gt;           MS_1, MS_2, MS_CURRENT, MS_OPEN, MS_FINAL, ONHAND.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    I_ALV-WERKS = I_MARC_VALUES-WERKS.&lt;/P&gt;&lt;P&gt;    I_ALV-DISPO = I_MARC_VALUES-DISPO.&lt;/P&gt;&lt;P&gt;    I_ALV-DISMM = I_MARC_VALUES-DISMM.&lt;/P&gt;&lt;P&gt;    I_ALV-LIFNR = I_MARC_VALUES-ZZLIFNR.&lt;/P&gt;&lt;P&gt;    I_ALV-MATNR = I_MARC_VALUES-MATNR.&lt;/P&gt;&lt;P&gt;    I_ALV-MAKTX = I_MARC_VALUES-MAKTX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CALCULATING MONTHLY SALES&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MONTHLY SALES 1 (CURRENT - 11)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM PAST_MONTH USING T_DATE&lt;/P&gt;&lt;P&gt;                            '-11'&lt;/P&gt;&lt;P&gt;                            'MONTHLY_1'&lt;/P&gt;&lt;P&gt;                    CHANGING I_ALV-MONTHLY_1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MONTHLY SALES 2 (CURRENT - 10)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM PAST_MONTH USING T_DATE&lt;/P&gt;&lt;P&gt;                            '-10'&lt;/P&gt;&lt;P&gt;                            'MONTHLY_2'&lt;/P&gt;&lt;P&gt;                    CHANGING I_ALV-MONTHLY_2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MONTHLY SALES 3 (CURRENT - 9)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM PAST_MONTH USING T_DATE&lt;/P&gt;&lt;P&gt;                            '-9'&lt;/P&gt;&lt;P&gt;                            'MONTHLY_3'&lt;/P&gt;&lt;P&gt;                    CHANGING I_ALV-MONTHLY_3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MONTHLY SALES 4 (CURRENT - &lt;span class="lia-unicode-emoji" title=":smiling_face_with_sunglasses:"&gt;😎&lt;/span&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM PAST_MONTH USING T_DATE&lt;/P&gt;&lt;P&gt;                            '-8'&lt;/P&gt;&lt;P&gt;                            'MONTHLY_4'&lt;/P&gt;&lt;P&gt;                    CHANGING I_ALV-MONTHLY_4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MONTHLY SALES 5 (CURRENT - 7)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM PAST_MONTH USING T_DATE&lt;/P&gt;&lt;P&gt;                            '-7'&lt;/P&gt;&lt;P&gt;                            'MONTHLY_5'&lt;/P&gt;&lt;P&gt;                    CHANGING I_ALV-MONTHLY_5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MONTHLY SALES 6 (CURRENT - 6)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM PAST_MONTH USING T_DATE&lt;/P&gt;&lt;P&gt;                            '-6'&lt;/P&gt;&lt;P&gt;                            'MONTHLY_6'&lt;/P&gt;&lt;P&gt;                    CHANGING I_ALV-MONTHLY_6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MONTHLY SALES 7 (CURRENT - 5)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM PAST_MONTH USING T_DATE&lt;/P&gt;&lt;P&gt;                            '-5'&lt;/P&gt;&lt;P&gt;                            'MONTHLY_7'&lt;/P&gt;&lt;P&gt;                    CHANGING I_ALV-MONTHLY_7.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MONTHLY SALES 8 (CURRENT - 4)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM PAST_MONTH USING T_DATE&lt;/P&gt;&lt;P&gt;                            '-4'&lt;/P&gt;&lt;P&gt;                            'MONTHLY_8'&lt;/P&gt;&lt;P&gt;                    CHANGING I_ALV-MONTHLY_8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MONTHLY SALES 9 (CURRENT - 3)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM PAST_MONTH USING T_DATE&lt;/P&gt;&lt;P&gt;                            '-3'&lt;/P&gt;&lt;P&gt;                            'MONTHLY_9'&lt;/P&gt;&lt;P&gt;                    CHANGING I_ALV-MONTHLY_9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MONTHLY SALES 10 (CURRENT - 2)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM PAST_MONTH USING T_DATE&lt;/P&gt;&lt;P&gt;                            '-2'&lt;/P&gt;&lt;P&gt;                            'MONTHLY_10'&lt;/P&gt;&lt;P&gt;                    CHANGING I_ALV-MONTHLY_10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MONTHLY SALES 11 (CURRENT - 1)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM PAST_MONTH USING T_DATE&lt;/P&gt;&lt;P&gt;                            '-1'&lt;/P&gt;&lt;P&gt;                            'MONTHLY_11'&lt;/P&gt;&lt;P&gt;                    CHANGING I_ALV-MONTHLY_11.&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------------------------" /&gt;&lt;P&gt;INSIDE THE SUBROUTINE&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  PAST_MONTH&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;CURR_DATE  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;PAST_MONTH   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;V_FIELDNAME  TEXT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--PAST_MONTH_VALUE  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM PAST_MONTH  USING    CURR_DATE&lt;/P&gt;&lt;P&gt;                          PAST_MONTH&lt;/P&gt;&lt;P&gt;                          V_FIELDNAME&lt;/P&gt;&lt;P&gt;                 CHANGING PAST_MONTH_VALUE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: TEMP_DATE LIKE SY-DATUM,&lt;/P&gt;&lt;P&gt;        NEW_DATE TYPE SPMON,&lt;/P&gt;&lt;P&gt;        TEMP_DATE_END LIKE SY-DATUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'RE_ADD_MONTH_TO_DATE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      MONTHS  = PAST_MONTH&lt;/P&gt;&lt;P&gt;      OLDDATE = CURR_DATE&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      NEWDATE = TEMP_DATE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  NEW_DATE(4) = TEMP_DATE(4).&lt;/P&gt;&lt;P&gt;  NEW_DATE&lt;EM&gt;4(2) = TEMP_DATE&lt;/EM&gt;4(2).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  TEMP_DATE_END = TEMP_DATE.&lt;/P&gt;&lt;P&gt;  TEMP_DATE_END+6(2) = '31'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CLEAR DATE RANGE FROM PREVIOUS MONTH&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: I_MONTH_RANGE, CONSUMP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF VENDOR = '300276', GET THE CONSUMPTION VALUES&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FOR THE SPECIFIC MONTH IF IT IS IN BETWEEN AUGUST 2006&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;AND JULY 2007 (HARDCODED UNTIL FEATURE IS NO LONGER NEEDED)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FILL DATE RANGE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  I_MONTH_RANGE-SIGN = 'I'.&lt;/P&gt;&lt;P&gt;  I_MONTH_RANGE-OPTION = 'BT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  I_MONTH_RANGE-LOW = TEMP_DATE.&lt;/P&gt;&lt;P&gt;  I_MONTH_RANGE-HIGH = TEMP_DATE_END.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND I_MONTH_RANGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE I_TVKWZ INTO I_TVKWZ_2 WITH KEY WERKS = I_ALV-WERKS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF I_ALV-LIFNR = '0000300276' AND TEMP_DATE IN I_CONSUMP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    FC_YEAR = TEMP_DATE(4).&lt;/P&gt;&lt;P&gt;    FC_MONTH = TEMP_DATE+4(2).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     SELECT * INTO TABLE I_MVER FROM MVER&lt;/P&gt;&lt;P&gt;      WHERE GJAHR = FC_YEAR&lt;/P&gt;&lt;P&gt;        AND WERKS = I_ALV-WERKS&lt;/P&gt;&lt;P&gt;        AND MATNR = I_ALV-MATNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT I_MVER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CASE FC_MONTH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          WHEN '01'.&lt;/P&gt;&lt;P&gt;            CONSUMP = I_MVER-GSV01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          WHEN '02'.&lt;/P&gt;&lt;P&gt;            CONSUMP = I_MVER-GSV02.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          WHEN '03'.&lt;/P&gt;&lt;P&gt;            CONSUMP = I_MVER-GSV03.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          WHEN '04'.&lt;/P&gt;&lt;P&gt;            CONSUMP = I_MVER-GSV04.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          WHEN '05'.&lt;/P&gt;&lt;P&gt;            CONSUMP = I_MVER-GSV05.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          WHEN '06'.&lt;/P&gt;&lt;P&gt;            CONSUMP = I_MVER-GSV06.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          WHEN '07'.&lt;/P&gt;&lt;P&gt;            CONSUMP = I_MVER-GSV07.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          WHEN '08'.&lt;/P&gt;&lt;P&gt;            CONSUMP = I_MVER-GSV08.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          WHEN '09'.&lt;/P&gt;&lt;P&gt;            CONSUMP = I_MVER-GSV09.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          WHEN '10'.&lt;/P&gt;&lt;P&gt;            CONSUMP = I_MVER-GSV10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          WHEN '11'.&lt;/P&gt;&lt;P&gt;            CONSUMP = I_MVER-GSV11.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          WHEN '12'.&lt;/P&gt;&lt;P&gt;            CONSUMP = I_MVER-GSV12.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        PAST_MONTH_VALUE = CONSUMP.&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;  PERFORM CONVERT_MAT_UNIT USING I_ALV-MATNR&lt;/P&gt;&lt;P&gt;                                 'EA'&lt;/P&gt;&lt;P&gt;                                 'CSE'&lt;/P&gt;&lt;P&gt;                                 PAST_MONTH_VALUE&lt;/P&gt;&lt;P&gt;                        CHANGING PAST_MONTH_VALUE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SUM( UMMENGE ) FROM S501&lt;/P&gt;&lt;P&gt;    INTO PAST_MONTH_VALUE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHERE SSOUR = SPACE&lt;/P&gt;&lt;P&gt;        AND VRSIO = '000'&lt;/P&gt;&lt;P&gt;        AND SPMON = NEW_DATE&lt;/P&gt;&lt;P&gt;        AND VKORG = I_TVKWZ_2-VKORG&lt;/P&gt;&lt;P&gt;        AND MATNR = I_ALV-MATNR&lt;/P&gt;&lt;P&gt;        AND sptag = c_sptag_ini&lt;/P&gt;&lt;P&gt;        AND spwoc = c_spwoc_ini&lt;/P&gt;&lt;P&gt;        AND spbup = c_spbup_ini&lt;/P&gt;&lt;P&gt;        AND VTWEG IN I_VTWEG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SUBTRACTING INVOICES (VBRP)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT VBRP~FKIMG&lt;/P&gt;&lt;P&gt;    FROM VBRP INNER JOIN VAPMA&lt;/P&gt;&lt;P&gt;      ON VBRP&lt;SUB&gt;VBELN = VAPMA&lt;/SUB&gt;VBELN&lt;/P&gt;&lt;P&gt;     AND VBRP&lt;SUB&gt;POSNR = VAPMA&lt;/SUB&gt;POSNR&lt;/P&gt;&lt;P&gt;         INNER JOIN VBAK&lt;/P&gt;&lt;P&gt;      ON VBRP&lt;SUB&gt;VBELN = VBAK&lt;/SUB&gt;VBELN&lt;/P&gt;&lt;P&gt;    INTO CORRESPONDING FIELDS OF TABLE I_VBRP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHERE VAPMA~MATNR = I_ALV-MATNR&lt;/P&gt;&lt;P&gt;        AND VAPMA~WERKS = I_ALV-WERKS&lt;/P&gt;&lt;P&gt;        AND VBRP~ERDAT IN I_MONTH_RANGE&lt;/P&gt;&lt;P&gt;        AND VBRP~PSTYV = 'TAB'&lt;/P&gt;&lt;P&gt;        AND VBAK~AUART = 'ZDS'.&lt;/P&gt;&lt;P&gt;BREAK SSANDLER.&lt;/P&gt;&lt;P&gt;  PAST_MONTH_VALUE = PAST_MONTH_VALUE - GALLO_SUB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM CONVERT_MAT_UNIT USING I_ALV-MATNR&lt;/P&gt;&lt;P&gt;                                 'EA'&lt;/P&gt;&lt;P&gt;                                 'CSE'&lt;/P&gt;&lt;P&gt;                                 PAST_MONTH_VALUE&lt;/P&gt;&lt;P&gt;                        CHANGING PAST_MONTH_VALUE.&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;  CONCATENATE 'M' SPACE NEW_DATE+4(2) '/' NEW_DATE(4)&lt;/P&gt;&lt;P&gt;              INTO FLD_HEADER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  W_FIELDCAT_LVC-scrtext_s = FLD_HEADER.&lt;/P&gt;&lt;P&gt;  W_FIELDCAT_LVC-scrtext_m = FLD_HEADER.&lt;/P&gt;&lt;P&gt;  W_FIELDCAT_LVC-scrtext_l = FLD_HEADER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  MODIFY I_FIELDCAT_LVC FROM W_FIELDCAT_LVC&lt;/P&gt;&lt;P&gt;         TRANSPORTING SCRTEXT_S SCRTEXT_M SCRTEXT_L&lt;/P&gt;&lt;P&gt;         WHERE FIELDNAME = V_FIELDNAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " PAST_MONTH&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jun 2007 20:31:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478024#M558009</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-27T20:31:45Z</dc:date>
    </item>
    <item>
      <title>Re: Urgent - Performance Optimization help</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478025#M558010</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't see anything here that would cause an increase in execution time everytime the form is called; however, I don't think this is you main problem. You want to increase the performance, so you should go to VAPMA to get the document numbers first.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I notice you removed the SUM. Do you not need it or are you going to look at it later?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jun 2007 20:48:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478025#M558010</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-27T20:48:04Z</dc:date>
    </item>
    <item>
      <title>Re: Urgent - Performance Optimization help</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478026#M558011</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;Thanks for the tips.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Am i not going to VAPMA currently or do i need to do something different?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I removed the sum because i'm going to use ABAP aggregate functions instead of DB aggregate functions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is how it looked with sum:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SUM( FKIMG )&lt;/P&gt;&lt;P&gt;    FROM VBRP INNER JOIN VBAP&lt;/P&gt;&lt;P&gt;      ON VBRP&lt;SUB&gt;VBELN = VBAP&lt;/SUB&gt;VBELN&lt;/P&gt;&lt;P&gt;     AND VBRP&lt;SUB&gt;POSNR = VBAP&lt;/SUB&gt;POSNR&lt;/P&gt;&lt;P&gt;         INNER JOIN VBAK&lt;/P&gt;&lt;P&gt;      ON VBRP&lt;SUB&gt;VBELN = VBAK&lt;/SUB&gt;VBELN&lt;/P&gt;&lt;P&gt;    INTO GALLO_SUB&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHERE VBAP~MATNR = I_ALV-MATNR&lt;/P&gt;&lt;P&gt;        AND VBAP~WERKS = I_ALV-WERKS&lt;/P&gt;&lt;P&gt;        AND VBRP~ERDAT IN I_MONTH_RANGE&lt;/P&gt;&lt;P&gt;        AND VBRP~PSTYV = 'TAB'&lt;/P&gt;&lt;P&gt;        AND VBAK~AUART = 'ZDS'.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jun 2007 20:54:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478026#M558011</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-27T20:54:55Z</dc:date>
    </item>
    <item>
      <title>Re: Urgent - Performance Optimization help</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478027#M558012</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'll have another look at it in a few minutes. I guess it looks OK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Give it a try. It should be better.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Rob Burbank&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jun 2007 20:59:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-performance-optimization-help/m-p/2478027#M558012</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-27T20:59:46Z</dc:date>
    </item>
  </channel>
</rss>

