Skip to main content
Announcements
Customer Spotlight: Discover what’s possible with embedded analytics Oct. 16 at 10:00 AM ET: REGISTER NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Qlikview performance

Hi,

I have an qlikview app with 30 million rows in total with may be 100+ expressions. The performance is slow any ideas and suggestion to rectify the performance?

Thanks

5 Replies
martin_dideriks
Partner - Contributor III
Partner - Contributor III

30 million rows is really not that much, but it can be, if you have a poorly configured server, for this data.

How do you experience the slow performance. Is it something you experience no matter what sheet you are using?

  1. Is key keys between the tables numeric?
  2. Improve the use of the cache, by reusing the expressions whenever possible. Sum(Amount) is not the same as Sum ( Amount).
  3. Do you have any calculated dimensions, you could move to the script?
  4. Do you have any If conditions in your charts? Try a Set analysis instead.
  5. Try to move all your conditions to the script and create a flag instead. Sum({$<MyField1={"a"},MyField2={"b"},...>} Amount), could be changed to Sum{$<MyFlag={1}>} Amount)
    1. See if these flags can be made directly on the facttable
  6. Is your datamodel a starschema or snowflake?
  7. ..........

There are many things to look at, when it comes to performance.

Since I have not seen you application, I cannot give you anything, that will improve your performance instantly.


//Martin

Not applicable
Author

Hi Martin,

Thanks for the reply. We do have lot of MTD, QTD, WTD calculated metrics. Data model is star schema. We do created all the expression as variables so we can use it as required at different levels.

Thanks

Not applicable
Author

1. Load data from QVD's

2. Use Set Function instead of if

3. Use Less no of expression's,calculate values in script itself

4. Use binary load

petter
Partner - Champion III
Partner - Champion III

One thing that can have a huge impact on speed/performance is making sure that you modify the values of the fields so you enable the maximum compression / deduplication benefit that QlikView has to offer.

That means basically that you get the ratio between Number of Values and Number of Distinct Values in each field as high as possible. So for numbers truncate or round off as much as you can for your needs. Use AutoNumber() in many places where it has an effect. Make sure that numbers if possible are in sequence to enable the QlikView engine to get rid of symbol-tables.

As an example of getting better ratio between # of values and unique/distinct values:

     A timestamp should be rounded to the resolution you need.

ToniKautto
Employee
Employee

Your details does not really provide any insight in what kind of performance issue you are experiencing. If your application is optimal, the problem can be that your server simply needs more hard ware resources. The first thing you need to figure out is if the application is the problem or if your hardware is the problem.

If you feel that the entire application is slow it can indicate a hardware issue. This could also be a consequence of more consequent user session than your hardware can handle. In this scenario you would typically see that all applications are slower than you expect.

Start by isolating in your application if the issue is related to a specific sheet. Then look at if it is related to a specific object in the sheet. If you can narrow the issue down to a specific object it is easier to look at why that object is slow. There could be many reasons for object level performance issues, and in such case you would need to provide a sample to enable anyone to give details recommendations.

Notice, a sample QVW does not need to contain data (QlikView > File > Reduce data > Remove All Vaules), but the table viewer must show the data model structure to allow evaluating how the chart calculation affects memory and CPU consumption.