<?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: Autonumber, Indexing, Key/Value Theory Question in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Autonumber-Indexing-Key-Value-Theory-Question/m-p/935900#M1256105</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jarrell,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;welcome to QlikView! In short, let me state two facts, and you will have to take my word for it now, or you will have to read one or more QlikView books to fully appreciate the underlying technology.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. QlikView does indexing for all fields automatically. It happens "under the hood" and we, QlikView developers, don't need to worry about it. There is no need to create any more indexes to optimize QlikView performance. It's already optimized for us.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. We use Autonumber() to save on the memory footprint for &lt;STRONG&gt;&lt;EM&gt;meaningless&lt;/EM&gt;&lt;/STRONG&gt; concatenated keys, those that we definitely don't need to store. If you intend to store the original key field along with the autonumbered version of it, it becomes counter-productive. You will consume more memory with no added benefit whatsoever.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you'd like to learn more about QlikView performance tuning, I'd recommend to check out some of the available QlikView books - in particular, Steven Redmond's &lt;STRONG&gt;&lt;EM&gt;Mastering QlikView&lt;/EM&gt;&lt;/STRONG&gt; and my new book &lt;STRONG&gt;&lt;EM&gt;QlikView Your Business&lt;/EM&gt;&lt;/STRONG&gt;. Both books teach the fundamentals of QlikView performance, in two different ways.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'd also recommend to check out the agenda of the &lt;A href="http://masterssummit.com/"&gt;Masters Summit for QlikView&lt;/A&gt;, the only advanced technical venue available for QlikView developers. In the Masters Summit, we teach Performance Tuning, and we discuss these issues in detail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers,&lt;/P&gt;&lt;P&gt;Oleg Troyansky&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.amazon.com/gp/product/1118949552/ref=as_li_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1118949552&amp;amp;linkCode=as2&amp;amp;tag=natursyner0f-20&amp;amp;linkId=HEF4KYLLE22XIQH2"&gt;QlikView Your Business: An expert guide to Business Discovery with QlikView and Qlik Sense&lt;/A&gt;&lt;IMG alt="" border="0" height="1" src="http://ir-na.amazon-adsystem.com/e/ir?t=natursyner0f-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1118949552" style="border: none !important; margin: 0px !important;" width="1" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 11 Sep 2015 14:47:10 GMT</pubDate>
    <dc:creator>Oleg_Troyansky</dc:creator>
    <dc:date>2015-09-11T14:47:10Z</dc:date>
    <item>
      <title>Autonumber, Indexing, Key/Value Theory Question</title>
      <link>https://community.qlik.com/t5/QlikView/Autonumber-Indexing-Key-Value-Theory-Question/m-p/935899#M1256102</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Hey everyone, as a newbie... I was just looking through and learning about the use of Autonumber().&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;I didn't realize what it was doing until yesterday...and somehow missed the obvious (!?). I thought autonumber would create an index ... sort of a key/value table, where the key was a sequential number, and the value was the field value (from the field that was used with the autonumber() function).&amp;nbsp; So, I thought something like:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="text-indent: .5in;"&gt;&lt;EM&gt;AutoNumber(Lastname,'Lastname') As Lastname&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt; ... would generate this: &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&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; 1, Smith&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&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; 2, Redmond&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&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; 3, Cromstrom&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&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; 4, Wunderlich&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&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; 5, Harmsen&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;And then, when referenced (in a chart or table), the lastname would read "Smith" or "Redmond", etc. However, I discovered (much to my ignorance), that is it the number itself, not the name, that is shown in chart/table objects, etc. So "Smith" is shown as '1', "Redmond" as '2', etc. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Question1: What if the users need to see the value, instead of the number? Would it best to create a second table... as a reference for an autonumber field? &lt;/EM&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;For example, if I had a list of donations, in a table, called Gifts: &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-size: 10.0pt; text-decoration: underline;"&gt;Original Load Script:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;STRONG&gt;Gifts:&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Load&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&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; GiftKey&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&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; ,GiftID&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&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; ,GiftDate&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&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; ...&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;SQL Select …&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;I could change the Load Script to read as follows: &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-size: 10.0pt; text-decoration: underline;"&gt;New Load Script:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;STRONG&gt;Gifts:&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Load&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&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; GiftKey&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&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; ,AutoNumber(GiftKey) As GK_Link&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&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; ,GiftID&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&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; ,GiftDate&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&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; ...&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;SQL Select …&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;STRONG&gt;GiftKeys:&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Load&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&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; GiftKey&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&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; ,GK_Link&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;RESIDENT Gifts;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;/P&gt;&lt;P style="margin-left: 1.0in;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;DROP GiftKey from Gifts;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;So the Autonumber field, GK_Link is really a new, optimized lookup table (and the field value, Giftkey, is moved to another table, called GiftKeys): &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG __jive_id="98663" alt="img1.JPG" class="jive-image image-1" height="205" src="https://community.qlik.com/legacyfs/online/98663_img1.JPG" style="height: 204.985px; width: 265px;" width="265" /&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt; As far as the GiftKey, above... &lt;/EM&gt;&lt;/P&gt;&lt;UL style="list-style-type: disc;"&gt;&lt;LI&gt;&lt;EM&gt;What if Giftkeys is referenced by other, multiple tables?&amp;nbsp; Will this cause other performance issues? For instance, if a ‘Matching Gifts’ table needs to link to Gift dimensions (Gifts table) via the GiftKey field (see below).&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;Also what if multiple expressions refer to the GiftKey in the Giftkeys table… [rather than in the Gifts Table, as previously?].&amp;nbsp; Will not additional hops be less efficient?&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG __jive_id="98664" alt="img2.JPG" class="jive-image image-2" height="262" src="https://community.qlik.com/legacyfs/online/98664_img2.JPG" style="height: 262.296px; width: 274px;" width="274" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;I wondered if this would be a performance improvement, or not? Would the GiftKeys table (optimized for minimal Symbol space…in terms of a sequential number, GK_Link) provide better efficiency/speed than originally? ….Even if the field values (Giftkey), now stored in another table, required the same amount of storage space in a symbol table? &lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;I tested these question by&amp;nbsp; running the numbers through Rob Wunderlich’s Document Analyzer.&amp;nbsp; Here were the results]:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#575757&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,helvetica,sans-serif&amp;quot;,&amp;quot;verticalAlign&amp;quot;:&amp;quot;baseline&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}" style="width: 575px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD style="border-top: solid gainsboro 1.0pt; border-left: none; border-bottom: solid gainsboro 1.0pt; border-right: none; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="top" width="344"&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-size: 9.0pt;"&gt;&lt;STRONG&gt;FieldName&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style="border-top: solid gainsboro 1.0pt; border-left: none; border-bottom: solid gainsboro 1.0pt; border-right: none; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="top" width="51"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;SPAN style="color: #333333; font-size: 9.0pt;"&gt;&lt;STRONG&gt;Distinct Values&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style="border-top: solid gainsboro 1.0pt; border-left: none; border-bottom: solid gainsboro 1.0pt; border-right: none; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="top" width="39"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;SPAN style="color: #333333; font-size: 9.0pt;"&gt;&lt;STRONG&gt;Symbol Width&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border-top: solid gainsboro 1.0pt; border-left: none; border-bottom: solid gainsboro 1.0pt; border-right: none; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="top" width="141"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;SPAN style="color: #333333; font-size: 9.0pt;"&gt;&lt;STRONG&gt;Symbol&lt;BR /&gt; Bytes&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border: none; border-bottom: solid gainsboro 1.0pt; padding: 0 5.4pt 0 5.4pt;" valign="top" width="344"&gt;&lt;P&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style="border: none; border-bottom: solid gainsboro 1.0pt; padding: 0 5.4pt 0 5.4pt;" valign="top" width="51"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style="border: none; border-bottom: solid gainsboro 1.0pt; padding: 0 5.4pt 0 5.4pt;" valign="top" width="39"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style="border: none; border-bottom: solid gainsboro 1.0pt; padding: 0 5.4pt 0 5.4pt;" valign="top" width="141"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD colspan="2" nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; padding: 0 5.4pt 0 5.4pt;" valign="top" width="394"&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-size: 9.0pt;"&gt;&lt;STRONG&gt;Original Results (Using GiftKey alone)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style="border: none; border-bottom: solid gainsboro 1.0pt; padding: 0 5.4pt 0 5.4pt;" valign="top" width="39"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style="border: none; border-bottom: solid gainsboro 1.0pt; padding: 0 5.4pt 0 5.4pt;" valign="top" width="141"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="344"&gt;&lt;P&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="51"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="39"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="141"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;SPAN style="color: black; font-size: 9.0pt;"&gt;&lt;STRONG&gt;19,536,021&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: white; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="344"&gt;&lt;P&gt;&lt;SPAN style="font-size: 9.0pt; color: #333333;"&gt;GiftKey&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: white; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="51"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;SPAN style="font-size: 9.0pt; color: #333333;"&gt;2,170,669&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: white; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="39"&gt;&lt;P&gt;&lt;SPAN style="font-size: 9.0pt; color: #333333;"&gt;8.00&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: white; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="141"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;SPAN style="font-size: 9.0pt; color: #333333;"&gt;19,536,021&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD nowrap="nowrap" style="border-top: solid gainsboro 1.0pt; border-left: none; border-bottom: solid gainsboro 1.0pt; border-right: none; padding: 0 5.4pt 0 5.4pt;" valign="top" width="344"&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-size: 9.0pt;"&gt;&lt;STRONG&gt;Modified Results (Generating GK_Link, Moving GiftKey to new reference table called GiftKeys)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="344"&gt;&lt;P&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border-top: solid gainsboro 1.0pt; border-left: none; border-bottom: solid gainsboro 1.0pt; border-right: none; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="51"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border-top: solid gainsboro 1.0pt; border-left: none; border-bottom: solid gainsboro 1.0pt; border-right: none; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="39"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border-top: solid gainsboro 1.0pt; border-left: none; border-bottom: solid gainsboro 1.0pt; border-right: none; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="141"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;SPAN style="color: black; font-size: 9.0pt;"&gt;&lt;STRONG&gt;21,706,690&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: white; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="344"&gt;&lt;P&gt;&lt;SPAN style="font-size: 9.0pt; color: #333333;"&gt;GiftKey&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: white; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="51"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;SPAN style="font-size: 9.0pt; color: #333333;"&gt;2,170,669&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: white; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="39"&gt;&lt;P&gt;&lt;SPAN style="font-size: 9.0pt; color: #333333;"&gt;8.00&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: white; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="141"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;SPAN style="font-size: 9.0pt; color: #333333;"&gt;19,536,021&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="344"&gt;&lt;P&gt;&lt;SPAN style="font-size: 9.0pt; color: #333333;"&gt;GK_Link&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="51"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;SPAN style="font-size: 9.0pt; color: #333333;"&gt;2,170,669&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="39"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;SPAN style="font-size: 9.0pt; color: #333333;"&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD nowrap="nowrap" style="border: none; border-bottom: solid gainsboro 1.0pt; background: whitesmoke; padding: 0 5.4pt 0 5.4pt;" valign="bottom" width="141"&gt;&lt;P align="center" style="text-align: center;"&gt;&lt;SPAN style="font-size: 9.0pt; color: #333333;"&gt;2,170,669&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;My results?&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt;"&gt; While I &lt;EM&gt;did&lt;/EM&gt; reduce the Symbol width to 0, for the GK_Link, from&lt;SPAN style="font-size: 13.3333px;"&gt; the original Gifts table &lt;/SPAN&gt;(now an autonumber field), I added the same number of rows/storage space in the reference table (GiftKeys) for the field values (GIftKey). &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; text-decoration: underline;"&gt;In effect, I just added two million rows…&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt;"&gt; and increased, not decreased, storage space, load-time, etc. [just the opposite of my goal]... [comment...now obvious, to a newbie like me].&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Questions: &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;So, is there a way to use autonumber (or similar), for any fields we need to keep, and reference the field &lt;EM&gt;values&lt;/EM&gt;? &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;More importantly, &lt;SPAN style="font-size: 13.3333px; text-decoration: underline;"&gt;Is there another way to create an index in Qlikview?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;&lt;EM&gt;- &lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;&lt;EM&gt;Is there a “Create Index” mechanism in Qlikview (similar to databases such as Informix or MS SQL Server)?&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;- And would such indexes be more proficient regarding speed (less load time, fast calculation / recalculation times, etc.)&amp;nbsp; - or would they just add additional storage space... for the same amount/number of rows from the original column? &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Jarrell&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Jan 2026 18:19:17 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Autonumber-Indexing-Key-Value-Theory-Question/m-p/935899#M1256102</guid>
      <dc:creator>jrdunson</dc:creator>
      <dc:date>2026-01-26T18:19:17Z</dc:date>
    </item>
    <item>
      <title>Re: Autonumber, Indexing, Key/Value Theory Question</title>
      <link>https://community.qlik.com/t5/QlikView/Autonumber-Indexing-Key-Value-Theory-Question/m-p/935900#M1256105</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jarrell,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;welcome to QlikView! In short, let me state two facts, and you will have to take my word for it now, or you will have to read one or more QlikView books to fully appreciate the underlying technology.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. QlikView does indexing for all fields automatically. It happens "under the hood" and we, QlikView developers, don't need to worry about it. There is no need to create any more indexes to optimize QlikView performance. It's already optimized for us.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. We use Autonumber() to save on the memory footprint for &lt;STRONG&gt;&lt;EM&gt;meaningless&lt;/EM&gt;&lt;/STRONG&gt; concatenated keys, those that we definitely don't need to store. If you intend to store the original key field along with the autonumbered version of it, it becomes counter-productive. You will consume more memory with no added benefit whatsoever.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you'd like to learn more about QlikView performance tuning, I'd recommend to check out some of the available QlikView books - in particular, Steven Redmond's &lt;STRONG&gt;&lt;EM&gt;Mastering QlikView&lt;/EM&gt;&lt;/STRONG&gt; and my new book &lt;STRONG&gt;&lt;EM&gt;QlikView Your Business&lt;/EM&gt;&lt;/STRONG&gt;. Both books teach the fundamentals of QlikView performance, in two different ways.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'd also recommend to check out the agenda of the &lt;A href="http://masterssummit.com/"&gt;Masters Summit for QlikView&lt;/A&gt;, the only advanced technical venue available for QlikView developers. In the Masters Summit, we teach Performance Tuning, and we discuss these issues in detail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers,&lt;/P&gt;&lt;P&gt;Oleg Troyansky&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.amazon.com/gp/product/1118949552/ref=as_li_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1118949552&amp;amp;linkCode=as2&amp;amp;tag=natursyner0f-20&amp;amp;linkId=HEF4KYLLE22XIQH2"&gt;QlikView Your Business: An expert guide to Business Discovery with QlikView and Qlik Sense&lt;/A&gt;&lt;IMG alt="" border="0" height="1" src="http://ir-na.amazon-adsystem.com/e/ir?t=natursyner0f-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1118949552" style="border: none !important; margin: 0px !important;" width="1" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Sep 2015 14:47:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Autonumber-Indexing-Key-Value-Theory-Question/m-p/935900#M1256105</guid>
      <dc:creator>Oleg_Troyansky</dc:creator>
      <dc:date>2015-09-11T14:47:10Z</dc:date>
    </item>
    <item>
      <title>Re: Autonumber, Indexing, Key/Value Theory Question</title>
      <link>https://community.qlik.com/t5/QlikView/Autonumber-Indexing-Key-Value-Theory-Question/m-p/935901#M1256109</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Oleg, &lt;/P&gt;&lt;P&gt; I was aware of the your first point already (automatic indexing)... but wondering about ways to somehow further optimize in light of what I've read about autonumber.&amp;nbsp; Thank you for point 2, confirming the point about meaningless keys (i.e. without values). &lt;/P&gt;&lt;P&gt; Thanks also for the recommendations, &lt;/P&gt;&lt;P&gt; Jarrell&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Sep 2015 14:53:30 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Autonumber-Indexing-Key-Value-Theory-Question/m-p/935901#M1256109</guid>
      <dc:creator>jrdunson</dc:creator>
      <dc:date>2015-09-11T14:53:30Z</dc:date>
    </item>
  </channel>
</rss>

