<?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: Drastic performance hit with Where Not Exists and Map Using in QlikView Publisher 12.40 SR1 in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Drastic-performance-hit-with-Where-Not-Exists-and-Map-Using-in/m-p/1639183#M732235</link>
    <description>&lt;P&gt;So I believe I have found the root cause.&amp;nbsp; There is a behavioral change in script execution between 12.20 SR4 and 12.40 SR1 that results in a big performance hit whenever &lt;A href="https://help.qlik.com/en-US/qlikview/April2019/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Map.htm%20" target="_self"&gt;&lt;STRONG&gt;Map Using&lt;/STRONG&gt;&lt;/A&gt; and &lt;STRONG&gt;Where Exists&lt;/STRONG&gt; are used together.&lt;/P&gt;&lt;P&gt;I am performing a &lt;STRONG&gt;Map Using&lt;/STRONG&gt; to map values in the load.&amp;nbsp; I ran all four combinations and timed the Concatenate operation:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Without Map, Without Where Exists: &lt;STRONG&gt;31 seconds&lt;/STRONG&gt; optimized load for 30M rows.&lt;/LI&gt;&lt;LI&gt;With Map, Without Where Exists: &lt;STRONG&gt;1 min 53 seconds&lt;/STRONG&gt;, non-optimized&lt;/LI&gt;&lt;LI&gt;Without Map, With Where Exists: &lt;STRONG&gt;40 seconds&lt;/STRONG&gt; optimized load&lt;/LI&gt;&lt;LI&gt;With Map, With Where Exists: &lt;STRONG&gt;33 minutes&lt;/STRONG&gt; non-optimized load!&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Note that the Map Using does not map the %Key field in my case.&lt;/P&gt;&lt;P&gt;Now to figure out how to work around it...&lt;/P&gt;</description>
    <pubDate>Wed, 23 Oct 2019 19:13:40 GMT</pubDate>
    <dc:creator>kevinpintokpa</dc:creator>
    <dc:date>2019-10-23T19:13:40Z</dc:date>
    <item>
      <title>Drastic performance hit with Where Not Exists and Map Using in QlikView Publisher 12.40 SR1</title>
      <link>https://community.qlik.com/t5/QlikView/Drastic-performance-hit-with-Where-Not-Exists-and-Map-Using-in/m-p/1639092#M732234</link>
      <description>&lt;P&gt;I have been using the Where Not Exists () method successfully to perform incremental loading of some very large QVDs for many years.&amp;nbsp; It was relatively quick under Publisher 12.20 SR4:&lt;/P&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-21 19:08:22 0772 Concatenating older data from ..\QVD\JDE\JDE_F0911.qvd&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-21 19:08:22 0773&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-21 19:08:22 0774 Concatenate ( 'JDE_F0911' )&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-21 19:08:22 0775 Load&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-21 19:08:22 0776 *&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-21 19:08:22 0777 From ..\QVD\JDE\JDE_F0911.qvd (qvd)&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-21 19:08:22 0778 Where Not Exists ( %Key )&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-21 19:10:04 &amp;nbsp; &amp;nbsp; &amp;nbsp; 146 fields found: %Key, &amp;nbsp;... GLWY,&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-21 19:10:04 &amp;nbsp; &amp;nbsp; &amp;nbsp;36,548,963 lines fetched&lt;/FONT&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This operation took less than 2 minutes under 12.20 SR4.&amp;nbsp; The %Key field was constructed using the Hash128() function since the underlying database table has multiple primary key fields.&lt;/P&gt;&lt;P&gt;We upgraded to 12.40 SR1 yesterday, and this operation now takes 41 minutes!&lt;/P&gt;&lt;DIV class=""&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-23 07:16:24 0774 Concatenating older data from ..\QVD\JDE\JDE_F0911.qvd&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-23 07:16:24 0775&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-23 07:16:24 0776 Concatenate ( 'JDE_F0911' )&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-23 07:16:24 0777 Load&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-23 07:16:24 0778 *&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-23 07:16:24 0779 From ..\QVD\JDE\JDE_F0911.qvd (qvd)&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;SPAN class=""&gt; 2019-10-23 07:16:24&lt;/SPAN&gt; 0780 Where Not Exists ( %Key )&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN class=""&gt;2019-10-23 07:57:03&lt;/SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 146 fields found: %Key, … GLWY,&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;FONT face="courier new,courier" size="3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-10-23 07:57:03 &amp;nbsp; &amp;nbsp; &amp;nbsp;36,548,963 lines fetched&lt;/FONT&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is seriously impacting the performance of my database loaders that load from very large tables.&lt;/P&gt;&lt;P&gt;Any ideas on how to mitigate or work around this?&lt;/P&gt;</description>
      <pubDate>Sat, 16 Nov 2024 02:08:11 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Drastic-performance-hit-with-Where-Not-Exists-and-Map-Using-in/m-p/1639092#M732234</guid>
      <dc:creator>kevinpintokpa</dc:creator>
      <dc:date>2024-11-16T02:08:11Z</dc:date>
    </item>
    <item>
      <title>Re: Drastic performance hit with Where Not Exists and Map Using in QlikView Publisher 12.40 SR1</title>
      <link>https://community.qlik.com/t5/QlikView/Drastic-performance-hit-with-Where-Not-Exists-and-Map-Using-in/m-p/1639183#M732235</link>
      <description>&lt;P&gt;So I believe I have found the root cause.&amp;nbsp; There is a behavioral change in script execution between 12.20 SR4 and 12.40 SR1 that results in a big performance hit whenever &lt;A href="https://help.qlik.com/en-US/qlikview/April2019/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Map.htm%20" target="_self"&gt;&lt;STRONG&gt;Map Using&lt;/STRONG&gt;&lt;/A&gt; and &lt;STRONG&gt;Where Exists&lt;/STRONG&gt; are used together.&lt;/P&gt;&lt;P&gt;I am performing a &lt;STRONG&gt;Map Using&lt;/STRONG&gt; to map values in the load.&amp;nbsp; I ran all four combinations and timed the Concatenate operation:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Without Map, Without Where Exists: &lt;STRONG&gt;31 seconds&lt;/STRONG&gt; optimized load for 30M rows.&lt;/LI&gt;&lt;LI&gt;With Map, Without Where Exists: &lt;STRONG&gt;1 min 53 seconds&lt;/STRONG&gt;, non-optimized&lt;/LI&gt;&lt;LI&gt;Without Map, With Where Exists: &lt;STRONG&gt;40 seconds&lt;/STRONG&gt; optimized load&lt;/LI&gt;&lt;LI&gt;With Map, With Where Exists: &lt;STRONG&gt;33 minutes&lt;/STRONG&gt; non-optimized load!&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Note that the Map Using does not map the %Key field in my case.&lt;/P&gt;&lt;P&gt;Now to figure out how to work around it...&lt;/P&gt;</description>
      <pubDate>Wed, 23 Oct 2019 19:13:40 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Drastic-performance-hit-with-Where-Not-Exists-and-Map-Using-in/m-p/1639183#M732235</guid>
      <dc:creator>kevinpintokpa</dc:creator>
      <dc:date>2019-10-23T19:13:40Z</dc:date>
    </item>
    <item>
      <title>Re: Drastic performance hit with Where Not Exists and Map Using in QlikView Publisher 12.40 SR1</title>
      <link>https://community.qlik.com/t5/QlikView/Drastic-performance-hit-with-Where-Not-Exists-and-Map-Using-in/m-p/1639992#M732236</link>
      <description>&lt;P&gt;It turns out that there was an easy fix.&amp;nbsp; I was able to use this statement just before the Concatenate:&lt;/P&gt;&lt;P&gt;Unmap *&lt;/P&gt;&lt;P&gt;This restored the performance to what it had been in 12.20 SR4.&lt;/P&gt;&lt;P&gt;Note that this worked for me because the QVD being concatenated had already been mapped previously.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 25 Oct 2019 16:21:53 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Drastic-performance-hit-with-Where-Not-Exists-and-Map-Using-in/m-p/1639992#M732236</guid>
      <dc:creator>kevinpintokpa</dc:creator>
      <dc:date>2019-10-25T16:21:53Z</dc:date>
    </item>
  </channel>
</rss>

