<?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: Structure of Symbol Tables using AutoNumber on Key fields in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2514808#M105574</link>
    <description>&lt;P&gt;Yes good point, I suppose this helps with optimized loads aswell&lt;/P&gt;</description>
    <pubDate>Fri, 18 Apr 2025 10:04:03 GMT</pubDate>
    <dc:creator>Qlik_William</dc:creator>
    <dc:date>2025-04-18T10:04:03Z</dc:date>
    <item>
      <title>Structure of Symbol Tables using AutoNumber on Key fields</title>
      <link>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2514235#M105458</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;Am I correct in understanding that if I use AutoNumber on a key field, for instance&lt;/P&gt;
&lt;P&gt;AutoNumber(ProductID&amp;amp;CustomerID)&lt;/P&gt;
&lt;P&gt;that the symbol table for the Key Field "ProductID&amp;amp;CustomerID" would look like this?&lt;/P&gt;
&lt;P&gt;Pointer&amp;nbsp; &amp;nbsp;Value&lt;/P&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;P&gt;that is, that the Value is empty because a look-up is not needed? Or would the symbol table look like this?&lt;/P&gt;
&lt;P&gt;Pointer&amp;nbsp; &amp;nbsp;Value&lt;/P&gt;
&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1&lt;/P&gt;
&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2&lt;/P&gt;
&lt;P&gt;Also is there a way to view the symbol tables?&amp;nbsp;Thank you.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 14 Apr 2025 10:58:41 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2514235#M105458</guid>
      <dc:creator>QlikWilliam</dc:creator>
      <dc:date>2025-04-14T10:58:41Z</dc:date>
    </item>
    <item>
      <title>Re: Structure of Symbol Tables using AutoNumber on Key fields</title>
      <link>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2514297#M105468</link>
      <description>&lt;P&gt;Yes the Value becomes a simple integer, and the original concatenated string is no longer stored in the field.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Or&amp;nbsp; try this&amp;nbsp;&lt;/P&gt;&lt;P&gt;AutoNumberHash128(ProductID, CustomerID)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 14 Apr 2025 17:44:02 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2514297#M105468</guid>
      <dc:creator>Chanty4u</dc:creator>
      <dc:date>2025-04-14T17:44:02Z</dc:date>
    </item>
    <item>
      <title>Re: Structure of Symbol Tables using AutoNumber on Key fields</title>
      <link>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2514313#M105474</link>
      <description>&lt;P&gt;It would look like neither. When a field contains only sequential integers, the index value in the table row is used as the value. So there is no symbol table. I think you might be saying this in your first example.&lt;/P&gt;&lt;P&gt;-Rob&lt;/P&gt;</description>
      <pubDate>Mon, 14 Apr 2025 19:16:06 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2514313#M105474</guid>
      <dc:creator>rwunderlich</dc:creator>
      <dc:date>2025-04-14T19:16:06Z</dc:date>
    </item>
    <item>
      <title>Re: Structure of Symbol Tables using AutoNumber on Key fields</title>
      <link>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2514577#M105536</link>
      <description>&lt;P&gt;Thanks for your replies!&lt;/P&gt;
&lt;P&gt;I did not realize there would be no symbol table at all. But it makes sense.&lt;/P&gt;
&lt;P&gt;Should we always use AutoNumber on key fields? Or is there a drawback?&lt;/P&gt;</description>
      <pubDate>Wed, 16 Apr 2025 09:45:44 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2514577#M105536</guid>
      <dc:creator>QlikWilliam</dc:creator>
      <dc:date>2025-04-16T09:45:44Z</dc:date>
    </item>
    <item>
      <title>Re: Structure of Symbol Tables using AutoNumber on Key fields</title>
      <link>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2514659#M105550</link>
      <description>&lt;P&gt;I recommend always using the AutoNumber on key fields.&lt;/P&gt;&lt;P&gt;I would also recommend using the &lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Autonumber.htm" target="_blank" rel="noopener"&gt;AutoNumber statement&lt;/A&gt; rather than the AutoNumber() function. Just put the statement at the end of your script. Much easier and much faster.&lt;/P&gt;&lt;P&gt;-Rob&lt;BR /&gt;&lt;A href="http://www.easyqlik.com" target="_blank"&gt;http://www.easyqlik.com&lt;/A&gt;&lt;BR /&gt;&lt;A href="http://masterssummit.com" target="_blank"&gt;http://masterssummit.com&lt;/A&gt;&lt;BR /&gt;&lt;A href="http://qlikviewcookbook.com" target="_blank"&gt;http://qlikviewcookbook.com&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Apr 2025 18:36:03 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2514659#M105550</guid>
      <dc:creator>rwunderlich</dc:creator>
      <dc:date>2025-04-16T18:36:03Z</dc:date>
    </item>
    <item>
      <title>Re: Structure of Symbol Tables using AutoNumber on Key fields</title>
      <link>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2514808#M105574</link>
      <description>&lt;P&gt;Yes good point, I suppose this helps with optimized loads aswell&lt;/P&gt;</description>
      <pubDate>Fri, 18 Apr 2025 10:04:03 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2514808#M105574</guid>
      <dc:creator>Qlik_William</dc:creator>
      <dc:date>2025-04-18T10:04:03Z</dc:date>
    </item>
    <item>
      <title>Re: Structure of Symbol Tables using AutoNumber on Key fields</title>
      <link>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2520104#M106374</link>
      <description>&lt;P&gt;A related question to the topic of symbol tables.&lt;/P&gt;&lt;P&gt;Let's say I have 1M rows in the Fact table and a column "A" with 100 distinct values. So the data is repeating a lot for this column. Is this a problem because the symbol table will still only store the 100 distinct values?&lt;/P&gt;&lt;P&gt;Will it make a difference if I remove the column "A" from the Fact table, performance wise, and instead only store the 100 distinct values of A in a dimension table that is associated with the Fact table through some key field?&lt;/P&gt;&lt;P&gt;I guess there should be some performance advantage otherwise why would we not store all the fields in a wide fact table, instead of having dimension tables?&lt;/P&gt;&lt;P&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/6148"&gt;@rwunderlich&lt;/a&gt;&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/49432"&gt;@Chanty4u&lt;/a&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 04 Jun 2025 13:39:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2520104#M106374</guid>
      <dc:creator>Qlik_William</dc:creator>
      <dc:date>2025-06-04T13:39:42Z</dc:date>
    </item>
    <item>
      <title>Re: Structure of Symbol Tables using AutoNumber on Key fields</title>
      <link>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2520114#M106376</link>
      <description>&lt;P&gt;IMO it's rather unlikely that the outsourcing of fact-fields into extra dimension-tables will have benefits in regard to the performance. Within the most scenarios the opposite will happens.&lt;/P&gt;&lt;P&gt;Especially with huge data-sets and/or if the UI performance is the biggest bottleneck it might be helpful to merge all information into a single big table. That's rather seldom necessary and might be addressed after a working star-scheme data-model (officially recommended as best compromise between script/UI performance but also development/maintainability efforts) was carefully optimized.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 04 Jun 2025 14:12:25 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2520114#M106376</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2025-06-04T14:12:25Z</dc:date>
    </item>
    <item>
      <title>Re: Structure of Symbol Tables using AutoNumber on Key fields</title>
      <link>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2520115#M106377</link>
      <description>&lt;P&gt;You are correct that the symbol table will only store 100 values in either the Fact or Dimension case. The symbol table size is the same.&amp;nbsp;&lt;/P&gt;&lt;P&gt;In terms of optimizing storage, placing a field in fact or dimension table is driven by how many fields could be in the dimension table.&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the fact table, you have 1M pointers for A. If you move A to a dimension table by itself you still have 1M pointers for A in the fact table. You will also have 100 pointers in the dimension table. This is inefficient and it's better to leave A in the fact.&lt;/P&gt;&lt;P&gt;If A were to move to a dimension table that contained multiple fields, there can be storage savings. For example imagine a set of ten "Customer" fields (Name, address, etc) with 100 values each. If placed in the fact, that be would 1M pointers * 10 fields. If moved to a dimension table, there would be only 1M pointers in the fact for the key field, and 100 pointers * 11 fields in the Customers dimension table.&lt;/P&gt;&lt;P&gt;-Rob&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 04 Jun 2025 14:59:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2520115#M106377</guid>
      <dc:creator>rwunderlich</dc:creator>
      <dc:date>2025-06-04T14:59:42Z</dc:date>
    </item>
    <item>
      <title>Re: Structure of Symbol Tables using AutoNumber on Key fields</title>
      <link>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2520283#M106397</link>
      <description>&lt;P&gt;Thank you both for the replies, very insightful.&lt;/P&gt;&lt;P&gt;So I guess both the number of pointers and pointer size (and thereby the number of rows in symbol tables) matters in terms of performance.&lt;/P&gt;&lt;P&gt;But for fields that do not belong in dimension tables, for instance "Category" with no extra attributes. If you have 1M rows and 100 distinct values for "Category", how does the symbol table help compress this field?&amp;nbsp;&lt;/P&gt;&lt;P&gt;You will then have 1M total pointers in the Fact (Data) table and 100 distinct pointers in the symbol table for "Category". I guess it takes less storage to store in this case a pointer of size 7, than the actual field values for "Category"?&lt;/P&gt;</description>
      <pubDate>Thu, 05 Jun 2025 16:38:23 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2520283#M106397</guid>
      <dc:creator>Qlik_William</dc:creator>
      <dc:date>2025-06-05T16:38:23Z</dc:date>
    </item>
    <item>
      <title>Re: Structure of Symbol Tables using AutoNumber on Key fields</title>
      <link>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2520331#M106404</link>
      <description>&lt;P&gt;The distribution of the data into data-tables which contain only fields with bit-stuffed pointer and are associated with these pointers to the appropriate system-tables which contain only the distinct field-values is not really a compression else a quite efficient way to store data. The more redundant the data are the bigger are the benefits against linear storage-logic like the classical sql or csv.&lt;/P&gt;&lt;P&gt;On top may come a zip-like compression - at least in QlikView there is an appropriate setting - which could significantly reduce the storage-size but usually are the disadvantages of increasing the CPU consumption and storing/opening times greater as the saved storage.&lt;/P&gt;&lt;P&gt;Further possible are measurements like sorting and indexing the data and/or storing only min/max + offset values by incrementing-data or using the pointer as value and/or applying any kind of partitioning but it will also add complexity and&amp;nbsp;increasing the CPU consumption.&lt;/P&gt;&lt;P&gt;In other words the native storage-logic of Qlik which becomes especially obvious by loading qvd's optimized or performing a binary load - which is a direct data-transfer from the storage into the RAM with nearly no data-processing - is quite near the maximum in regard to the performance.&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jun 2025 07:04:58 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2520331#M106404</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2025-06-06T07:04:58Z</dc:date>
    </item>
    <item>
      <title>Re: Structure of Symbol Tables using AutoNumber on Key fields</title>
      <link>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2521203#M106524</link>
      <description>&lt;P&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/200297"&gt;@Qlik_William&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I missed all the fun on this question...&lt;/P&gt;&lt;P&gt;I'll reflect on your last question -&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;"If you have 1M rows and 100 distinct values for "Category", how does the symbol table help compress this field? "&lt;BR /&gt;&lt;BR /&gt;The way Qlik does de-duplication and internal indexing of the data, with the Symbols table and the Index table, helps reduce the size of duplicate values. Instead of storing 1M rows with a 20-character string (for example), you only store 100 distinct values, and then 1M rows with a pointer - in this case it's a 7-bit pointer. 7 bits take approximately 20+ times less memory than 20 characters. So, roughly 95% compression.&lt;BR /&gt;Keep in mind, that this de-duplication happens automatically behind the scene, and you don't need to do anything for it.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Your decision could pertain to the question "Does Category belong in the Fact table, or in a Product Dimension table?". Typically, Category is an attribute that belongs in the Products hierarchy. So, usually you'd have a choice of keeping the field in the Products table or moving it to the Fact table. And the answer to this question is "It depends".&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;From the memory consumption perspective, a Category field stored in a Products Dimensional table will require less memory, because the Index table for Products is much shorted than the Index table for a Facts table. However, performance of specific objects and measures could differ in this case. Sometimes charts work faster when their Dimensions are stored in the Fact, and sometimes they don't. These issues need to be tested and verified in each particular data set.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Cheers,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Oleg&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 15 Jun 2025 23:53:22 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2521203#M106524</guid>
      <dc:creator>Oleg_Troyansky</dc:creator>
      <dc:date>2025-06-15T23:53:22Z</dc:date>
    </item>
    <item>
      <title>Re: Structure of Symbol Tables using AutoNumber on Key fields</title>
      <link>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2522313#M106651</link>
      <description>&lt;P&gt;Thanks for your comment. Yes this is what I thought would happen. The "Category" was a bad example, I just wanted an example of a dimension that does not belong in a dimension table.&lt;/P&gt;&lt;P&gt;In this case like I think was mentioned in this thread, the dimension should be in the fact table, there is no need to have a dimension table if there are no attributes for it. Also calculation wise, it should be better since you have it in the same table.&lt;/P&gt;&lt;P&gt;I can also add that when you are using AutoNumber in the load statements for different key fields like&amp;nbsp;&lt;/P&gt;&lt;P&gt;AutoNumber(Customer) as Customer,&amp;nbsp;&lt;/P&gt;&lt;P&gt;AutoNumber(Product) as Product&lt;/P&gt;&lt;P&gt;In this case you will not get sequential integers in the individual fields, and thereby you would still get symbol tables for these fields is my understanding. Which can be good to keep in mind. You can solve this by using the second parameter of the AutoNumber function like&lt;/P&gt;&lt;P&gt;AutoNumber(Product, ‘Product’) as Product&lt;BR /&gt;AutoNumber(Customer, ‘Customer’) as Customer&lt;/P&gt;&lt;P&gt;However from my testing it seems that this is taken cared of automatically using the AutoNumber fieldlist like&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/6148"&gt;@rwunderlich&lt;/a&gt;&amp;nbsp;suggested&lt;/P&gt;&lt;P&gt;AutoNumber Product, Customer;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 25 Jun 2025 14:01:27 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Structure-of-Symbol-Tables-using-AutoNumber-on-Key-fields/m-p/2522313#M106651</guid>
      <dc:creator>Qlik_William</dc:creator>
      <dc:date>2025-06-25T14:01:27Z</dc:date>
    </item>
  </channel>
</rss>

