<?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 Performance problem with WHERE clause in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177214#M44910</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;When not loading from a QlikView table (resident) you could also try to include this where-statement in the sql-block when loading the data ... this would also speed up your query ...&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;Stefan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 07 Sep 2009 22:46:56 GMT</pubDate>
    <dc:creator />
    <dc:date>2009-09-07T22:46:56Z</dc:date>
    <item>
      <title>Performance problem with WHERE clause</title>
      <link>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177210#M44906</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="MARGIN: 0cm 0cm 10pt"&gt;Hello everybody,&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 10pt"&gt;we have a performance problem while reloading an application. The used data stored in a qvd-file is only 50MB. The script consists of a lot of statements like the following:&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 10pt"&gt;code&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;B&gt;Load&lt;/B&gt;&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;Jahr &amp;amp; Monat &amp;amp; Kostenstelle_Nr &amp;amp; Betrag_Plan &amp;amp; Konto &lt;B&gt;as&lt;/B&gt; %DatensatzKey_PLAN,&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;Betrag_Plan &lt;B&gt;as&lt;/B&gt; [Rohertrag_Plan]&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;B&gt;RESIDENT&lt;/B&gt; IST_Plan&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;B&gt;Where&lt;/B&gt; Konto_Gruppe Like 'Kundenbeitrag'&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;B&gt;OR&lt;/B&gt; Konto_Gruppe Like 'Pflegeertrag'&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;B&gt;OR&lt;/B&gt; Konto_Gruppe Like 'Dienstleistungsertrag'&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;B&gt;OR&lt;/B&gt; Konto_Gruppe Like 'Warenertrag'&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;B&gt;OR&lt;/B&gt; Konto_Gruppe Like 'Erlösschmälerungen'&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;B&gt;OR&lt;/B&gt; Konto_Gruppe Like 'sonstige betriebliche Erträge'&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;B&gt;OR&lt;/B&gt; Konto_Gruppe Like 'Warenaufwand'&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;B&gt;OR&lt;/B&gt; Konto_Gruppe Like 'Dienstleistungsaufwand'&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;B&gt;OR&lt;/B&gt; Konto_Gruppe Like 'Hilfsmittel Pflege'&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;B&gt;OR&lt;/B&gt; Konto_Gruppe Like 'Aufwand für bezogene Leistungen'&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;B&gt;OR&lt;/B&gt; Konto_Gruppe Like 'Nachlässe';&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 10pt"&gt;/code&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 10pt"&gt;Is there a better way of scripting that with a better performance?&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 10pt"&gt;Thank you very much in advance!&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 10pt"&gt;Cheers&lt;/P&gt;&lt;P style="MARGIN: 0cm 0cm 10pt"&gt;tobklug&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Sep 2009 14:29:32 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177210#M44906</guid>
      <dc:creator />
      <dc:date>2009-09-07T14:29:32Z</dc:date>
    </item>
    <item>
      <title>AW:Performance problem with WHERE clause</title>
      <link>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177211#M44907</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;you could try the match statement instead of the multiple or's, e.g.&lt;/P&gt;&lt;P&gt;where match(Konto_Gruppe,'Kundenbeitrag','Pflegeertrag','WasweißderTeufelsonstnoch') &amp;gt; 0&lt;/P&gt;&lt;P&gt;Perhaps it's worth a try,&lt;/P&gt;&lt;P&gt;Rgds,&lt;BR /&gt;Joachim&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Sep 2009 14:37:51 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177211#M44907</guid>
      <dc:creator>biester</dc:creator>
      <dc:date>2009-09-07T14:37:51Z</dc:date>
    </item>
    <item>
      <title>Performance problem with WHERE clause</title>
      <link>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177212#M44908</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Why do yo use "like" if you don't use '%' ?? in sql is faster the '=' than the 'like'.&lt;/P&gt;&lt;P&gt;Anyway if you need the "like" you can use "wildmatch" instead of "match"&lt;/P&gt;&lt;P&gt;Bue&lt;/P&gt;&lt;P&gt;Walter&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Sep 2009 15:16:58 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177212#M44908</guid>
      <dc:creator />
      <dc:date>2009-09-07T15:16:58Z</dc:date>
    </item>
    <item>
      <title>AW:Performance problem with WHERE clause</title>
      <link>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177213#M44909</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;...thank you very much for the quick reply!&lt;/P&gt;&lt;P&gt;Using the match function speeds up the reolad and was new to me. Unfortunately the problem with 4GB RAM not beeing enough for the whole application to reload stays.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Sep 2009 18:21:08 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177213#M44909</guid>
      <dc:creator />
      <dc:date>2009-09-07T18:21:08Z</dc:date>
    </item>
    <item>
      <title>Performance problem with WHERE clause</title>
      <link>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177214#M44910</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;When not loading from a QlikView table (resident) you could also try to include this where-statement in the sql-block when loading the data ... this would also speed up your query ...&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;Stefan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Sep 2009 22:46:56 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177214#M44910</guid>
      <dc:creator />
      <dc:date>2009-09-07T22:46:56Z</dc:date>
    </item>
    <item>
      <title>Performance problem with WHERE clause</title>
      <link>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177215#M44911</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'd recommend using function exists(), especially within a QVD load - this is the only form of "where" that is allowed in the optimized load.&lt;/P&gt;&lt;P&gt;I haven't done any benchmark testing (disclaimer for all the purists out there &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt; ) but I'd expect exists() to be much faster than any other forms of "WHERE"-conditions.&lt;/P&gt;&lt;P&gt;Exists() doesn't take care of the "wild card" search - the values need to be spelled precisely. If performance is an issue, perhaps you could create a list of the relevant groups, spelling each name completely.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Sep 2009 23:02:40 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177215#M44911</guid>
      <dc:creator>Oleg_Troyansky</dc:creator>
      <dc:date>2009-09-07T23:02:40Z</dc:date>
    </item>
    <item>
      <title>Performance problem with WHERE clause</title>
      <link>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177216#M44912</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Another observation... You are creating a long concatenated key (out of 5 individual keys), and I bet this key takes HUGE amount of memory. A few suggestions with this regard:&lt;/P&gt;&lt;P&gt;1. Try encolsing your concatenated values in a function autonumber() and see if it helps with your memory problem.&lt;/P&gt;&lt;P&gt;2. Try revising your data model. It looks like you are building a large LinkTable. Maybe, concatenating data tables into one table could work better in your case, if it helps eliminating a huge concatenated key.&lt;/P&gt;&lt;P&gt;3. Generate Memory Statistics (Document Properties, General Tab) and load the generated file into QlikView Optimizer (one of the sample documents, shipped with QlikView). Examine your largest "memory consumers" - fields, tables. charts, etc... Try to eliminate the biggest ones.&lt;/P&gt;&lt;P&gt;I'm sure you can do a lot of memory saving before giving up on your 4GB RAM...&lt;/P&gt;&lt;P&gt;Cheers!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Sep 2009 23:10:29 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177216#M44912</guid>
      <dc:creator>Oleg_Troyansky</dc:creator>
      <dc:date>2009-09-07T23:10:29Z</dc:date>
    </item>
    <item>
      <title>Performance problem with WHERE clause</title>
      <link>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177217#M44913</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="jive_text_macro jive_macro_quote" jivemacro="quote"&gt;&lt;BR /&gt;Oleg Troyansky wrote:I haven't done any benchmark testing (disclaimer for all the purists out there &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt; ) but I'd expect exists() to be much faster than any other forms of "WHERE"-conditions.&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt; &lt;P&gt;I've done some performance comparisons. Exists() should be MUCH faster than match() in a case like this because it will allow you to get an optimized QVD load. Here's how I would set it up:&lt;/P&gt;&lt;P style="padding-left:30px;"&gt;[MyTable]:&lt;BR /&gt;LOAD * INLINE [&lt;BR /&gt;Konto_Gruppe&lt;BR /&gt;Kundenbeitrag&lt;BR /&gt;Pflegeertrag&lt;BR /&gt;Dienstleistungsertrag&lt;BR /&gt;Warenertrag&lt;BR /&gt;Erlösschmälerungen&lt;BR /&gt;sonstige betriebliche Erträge&lt;BR /&gt;Warenaufwand&lt;BR /&gt;Dienstleistungsaufwand&lt;BR /&gt;Hilfsmittel Pflege&lt;BR /&gt;Aufwand für bezogene Leistungen&lt;BR /&gt;Nachlässe&lt;BR /&gt;];&lt;BR /&gt;INNER JOIN ([MyTable])&lt;BR /&gt;Load&lt;BR /&gt;Konto_Gruppe,&lt;BR /&gt;Jahr &amp;amp; Monat &amp;amp; Kostenstelle_Nr &amp;amp; Betrag_Plan &amp;amp; Konto as %DatensatzKey_PLAN,&lt;BR /&gt;Betrag_Plan as [Rohertrag_Plan]&lt;BR /&gt;FROM MyQVD.qvd (QVD)&lt;BR /&gt;WHERE EXISTS(Konto_Gruppe)&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;Now in your case, you were loading from a resident table and didn't show the part where you loaded from the QVD, so I suspect there are other aspects of your script that should be optimized to be able to pull this off. And I agree with autonumbering the key or revising your data model.&lt;/P&gt;&lt;P&gt;Edit: Looking at this again, it's possible that concatenating all those fields together into %DatensatzKey_PLAN might prevent an optimized reload. If so, I'm not sure if it would still be faster as shown above, or with a match, or perhaps with a second pass through the data resident to build the key.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Sep 2009 01:28:27 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177217#M44913</guid>
      <dc:creator>johnw</dc:creator>
      <dc:date>2009-09-09T01:28:27Z</dc:date>
    </item>
    <item>
      <title>Performance problem with WHERE clause</title>
      <link>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177218#M44914</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you all for your quick and detailed help! All these advices were helpful and taught me that it is time to focus more on different ways to script. So far I consider myself as a good developer who can achieve the required result. The next step should be to do that with better performance!&lt;/P&gt;&lt;P&gt;Does QlikTech offer a class for that? Maybe the "advanced scripting"?&lt;/P&gt;&lt;P&gt;Thanks again&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Sep 2009 14:37:58 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Performance-problem-with-WHERE-clause/m-p/177218#M44914</guid>
      <dc:creator />
      <dc:date>2009-09-09T14:37:58Z</dc:date>
    </item>
  </channel>
</rss>

