<?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: Optimization of SQL query in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/optimization-of-sql-query/m-p/9803554#M1780254</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Also note that &lt;STRONG&gt;in most cases&lt;/STRONG&gt; INNER JOIN performs better than FOR ALL ENTRIES. So you should try INNER JOIN first.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 04 Nov 2013 06:09:57 GMT</pubDate>
    <dc:creator>matt</dc:creator>
    <dc:date>2013-11-04T06:09:57Z</dc:date>
    <item>
      <title>Optimization of SQL query</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/optimization-of-sql-query/m-p/9803552#M1780252</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi experts, can you give me any advice on optimizing the two SQL queries; thanks in advance. This is part of a program which is normally run in background but has to be run in foreground.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt; 1st SQL query:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;SELECT a&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;mblnr&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;mjahr&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;budat&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;bwart&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;matnr&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;werks&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;menge&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;meins&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;INTO &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;TABLE &lt;/SPAN&gt;i_mseg&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;FROM &lt;/SPAN&gt;mkpf &lt;SPAN class="L0S52"&gt;AS &lt;/SPAN&gt;a INNER &lt;SPAN class="L0S52"&gt;JOIN &lt;/SPAN&gt;mseg &lt;SPAN class="L0S52"&gt;AS &lt;/SPAN&gt;b &lt;SPAN class="L0S52"&gt;ON&amp;nbsp; &lt;/SPAN&gt;a&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;mblnr &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;mblnr&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;AND &lt;/SPAN&gt;a&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;mjahr &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;mjahr&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;FOR &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;ALL &lt;/SPAN&gt;ENTRIES &lt;SPAN class="L0S52"&gt;IN &lt;/SPAN&gt;i_semit_cost&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;WHERE &lt;/SPAN&gt;a&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;budat &lt;SPAN class="L0S52"&gt;BETWEEN &lt;/SPAN&gt;ws_d_first &lt;SPAN class="L0S52"&gt;AND &lt;/SPAN&gt;ws_d_last&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;AND&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;bwart &lt;SPAN class="L0S52"&gt;IN &lt;/SPAN&gt;r_bwart&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;AND&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;matnr &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;i_semit_cost&lt;SPAN class="L0S70"&gt;-&lt;/SPAN&gt;matnr_head&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;AND&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;werks &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;i_semit_cost&lt;SPAN class="L0S70"&gt;-&lt;/SPAN&gt;werks&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;&lt;SPAN class="L0S55"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;&lt;SPAN class="L0S55"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;&lt;SPAN class="L0S55"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;SPAN class="L0S52"&gt;&lt;SPAN class="L0S55"&gt;2nd SQL query:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;&lt;SPAN class="L0S55"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;SELECT a&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;mblnr&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;mjahr&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;budat&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;bwart&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;matnr&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;werks&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;menge&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;meins&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;INTO &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;TABLE &lt;/SPAN&gt;i_mseg_ppv&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;FROM &lt;/SPAN&gt;mkpf &lt;SPAN class="L0S52"&gt;AS &lt;/SPAN&gt;a INNER &lt;SPAN class="L0S52"&gt;JOIN &lt;/SPAN&gt;mseg &lt;SPAN class="L0S52"&gt;AS &lt;/SPAN&gt;b &lt;SPAN class="L0S52"&gt;ON&amp;nbsp; &lt;/SPAN&gt;a&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;mblnr &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;mblnr&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;AND &lt;/SPAN&gt;a&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;mjahr &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;mjahr&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INNER &lt;SPAN class="L0S52"&gt;JOIN &lt;/SPAN&gt;ekko &lt;SPAN class="L0S52"&gt;AS &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;c &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;ON&amp;nbsp; &lt;/SPAN&gt;b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;ebeln &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;c&lt;/SPAN&gt;&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;ebeln&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;FOR &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;ALL &lt;/SPAN&gt;ENTRIES &lt;SPAN class="L0S52"&gt;IN &lt;/SPAN&gt;i_semit_cost&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;WHERE &lt;/SPAN&gt;a&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;budat &lt;SPAN class="L0S52"&gt;BETWEEN &lt;/SPAN&gt;ws_d_first &lt;SPAN class="L0S52"&gt;AND &lt;/SPAN&gt;ws_d_last&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;AND&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;bwart &lt;SPAN class="L0S52"&gt;IN &lt;/SPAN&gt;r_bwart_ppv&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;AND&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;matnr &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;i_semit_cost&lt;SPAN class="L0S70"&gt;-&lt;/SPAN&gt;matnr_head&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;AND&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;b&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;werks &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;i_semit_cost&lt;SPAN class="L0S70"&gt;-&lt;/SPAN&gt;bwkey&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;AND&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;c&lt;/SPAN&gt;&lt;SPAN class="L0S70"&gt;~&lt;/SPAN&gt;reswk &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;p_werks&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 Oct 2013 13:49:58 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/optimization-of-sql-query/m-p/9803552#M1780252</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-10-24T13:49:58Z</dc:date>
    </item>
    <item>
      <title>Re: Optimization of SQL query</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/optimization-of-sql-query/m-p/9803553#M1780253</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jack,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If tables that you are using have already millions of records it may be difficult to optimize query such that it can run in the foreground.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Usually it is not recommended to mix JOINs and FOR ALL ENTRIES into same statement due to low performance results. In addition you do join 2 tables in first example and 3 tables in second one. So in fact if you add FOR ALL ENTRIES it is like join on 3 and 4 tables correspondingly and this will be time consuming.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You should try different approaches, do measurements in ST05 database logs and finally choose best performing solution. There are many factors like data distribution and indexes that will influence your query performance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Some recommendations from me to try:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Use only JOINs. Replace FOR ALL ENTRIES IN by another JOIN for i_semit_cost table for first example. It may not be possible if your design has already data selected into i_semit_cost from before.&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-size: 10pt;"&gt;Use only FOR ALL ENTRIES.&lt;/SPAN&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN style="font-size: 10pt;"&gt;Try to find which table returns less rows from SELECT and WHERE filtered query. Use it as first SELECT and put results into local table lt_table1.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-size: 10pt;"&gt;Then do select on next table using FOR ALL ENTRIES IN lt_table1 and put results to lt_table2 etc.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-size: 10pt;"&gt;With this approach you automatically filter most rows at the beginning so less will be used for further JOINs. In fact with single SELECT and all JOIN statements at once (see point 1) database optimizer should do it automatically, but it does not always need to be right. So it is worth to try results with different tables query sequence.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-size: 10pt;"&gt;Make sure that fields which you are using in WHERE condition are already covered by index. At least most &lt;/SPAN&gt;distinctive&lt;SPAN style="font-size: 10pt;"&gt; values should have the index (index on year will not give you much as there may be thousands/millions of rows for each year, but index on material number will filter results much better).&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;Adam&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Oct 2013 09:03:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/optimization-of-sql-query/m-p/9803553#M1780253</guid>
      <dc:creator>adam_krawczyk1</dc:creator>
      <dc:date>2013-10-28T09:03:21Z</dc:date>
    </item>
    <item>
      <title>Re: Optimization of SQL query</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/optimization-of-sql-query/m-p/9803554#M1780254</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Also note that &lt;STRONG&gt;in most cases&lt;/STRONG&gt; INNER JOIN performs better than FOR ALL ENTRIES. So you should try INNER JOIN first.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Nov 2013 06:09:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/optimization-of-sql-query/m-p/9803554#M1780254</guid>
      <dc:creator>matt</dc:creator>
      <dc:date>2013-11-04T06:09:57Z</dc:date>
    </item>
    <item>
      <title>Re: Optimization of SQL query</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/optimization-of-sql-query/m-p/9803555#M1780255</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Jack,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;well, there is actually only one ultimate solution for your problem. And this solution is described in the SAP note 1550000. Read it carefully. If you decide to go for it (we've got a couple of very positive feedbacks from our customers), you'll also have to slightly modify the query in order to use new fields from MSEG instead of MKPF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&amp;nbsp; Yuri&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Nov 2013 16:12:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/optimization-of-sql-query/m-p/9803555#M1780255</guid>
      <dc:creator>yuri_ziryukin</dc:creator>
      <dc:date>2013-11-07T16:12:42Z</dc:date>
    </item>
  </channel>
</rss>

