9 Best Practices for Data Model Performance in Qlik Sense


When building a Qlik Sense app, optimizing the data model ensures better performance, faster load times, and efficient use of resources. Here are the best practices for improving data model performance along with simple examples:

1. Remove Synthetic Keys

Synthetic keys occur when multiple fields in two tables share the same name, creating unintended relationships.

Example: If Table A and Table B both have “CustomerID” and “OrderID,” Qlik Sense creates synthetic keys. Rename or drop unnecessary fields to avoid this.

2. Eliminate Circular References

Circular references happen when multiple paths connect tables, causing ambiguity in data relationships.

Example: If Table A links to Table B, and Table B links back to Table A through Table C, remove or redesign the relationships to eliminate the loop.

3. Ensure Correct Granularity of Data

The granularity of data should match the analysis requirements to avoid duplication or aggregation errors.

Example: If daily sales are needed, avoid loading data at the transaction level. Aggregate data to daily sales in the script.

4. Use QVDs Where Possible

QVDs (QlikView Data files) store preprocessed data for faster reloads and efficient performance.

Example: Extract raw data from the source, save it as a QVD, and use the QVD for subsequent app development.

5. Use Integers for Table Joins

Joining tables with integers is faster than using strings.

Example: Instead of joining on “CustomerName,” create a “CustomerID” field as an integer and use it for joins.

6. Remove System Keys or Timestamps

System keys or timestamps increase memory usage without adding value to the analysis.

Example: Exclude fields like “LastUpdatedTimestamp” unless explicitly required.

7. Remove Unused Fields

Fields not used in visualizations or calculations unnecessarily consume memory.

Example: If “CustomerPhoneNumber” is not used in charts or filters, exclude it during the data load.

8. Avoid Link Tables in Very Large Data Models

Link tables can complicate large data models and slow performance. Instead, consider simplifying relationships.

Example: If Table A and Table B share multiple keys, combine them into one table if possible.

9. Use Autonumber for Large Concatenated Keys

Autonumber reduces memory usage by converting large concatenated keys into compact integers.

Example: Instead of using “CustomerID & OrderID” as a key, use Autonumber(CustomerID & ‘-‘ & OrderID) in the script.

Implementing these best practices will streamline your Qlik Sense data model, ensuring efficient performance and a smoother user experience. By focusing on the key aspects of data modeling, you can avoid common pitfalls and achieve faster, more reliable analytics.


Leave a Reply

Your email address will not be published. Required fields are marked *