Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
pra_kale
Creator III
Creator III

Ways to Optimize Qlik Application

Hi,

Can any one help me with different ways of optimising  Qlik Application by which i can reduce time of execution.

Below given few ways which I know..

i) Use of inline above qvd load so it will load only desired data.

ii) Where ever possible load table only once and then use Resident of that table.

iii) load table as is and date formatting or any where condition put in Resident.

Thanks in advance.

1 Solution

Accepted Solutions
maxgro
MVP
MVP

There is a good answer here *** 6 Weeks in to QV Development, 30 Million Records QV Document and Help Needed!!! ****

Regarding qvd vs resident load, this is a small test I did now with a 65 million record qvd

T1 << T1 (qvd optimized) 63.510.000 lines fetched

QVD read 00:00:13

T2 << T1 63.510.000 lines fetched

RESIDENT read 00:00:36

you can try yourself, just make a qvd  to read and try this code

let ts = now(1);

T1: load * from T1.qvd (qvd);

let delta = interval(now(1) - '$(ts)');

trace QVD read $(delta);

let ts = now(1);

T2: NoConcatenate load * Resident T1;

let delta = interval(now(1) - '$(ts)');

trace RESIDENT read $(delta);

DROP Table T1;

View solution in original post

6 Replies
Anonymous
Not applicable

It is better to check execution times for your script for load from QVD to load from Resident. Resident load always do not make it best.


Qlikview Best practices

What is a better practise? Storing a table in QVD format and loading it again in that format or doin...

marcus_sommer

I wouldn't call your examples load-optimizations. More effective will be to use an incremental load-approach with optimized qvd-loadings and in a modular data-architecture (quite common is a 3-tier architecture with generators --> datamodels --> reports).

More to them and some other useful topics could you find here:

Advanced topics for creating a qlik datamodel

More advanced topics of qlik datamodels

- Marcus

maxgro
MVP
MVP

There is a good answer here *** 6 Weeks in to QV Development, 30 Million Records QV Document and Help Needed!!! ****

Regarding qvd vs resident load, this is a small test I did now with a 65 million record qvd

T1 << T1 (qvd optimized) 63.510.000 lines fetched

QVD read 00:00:13

T2 << T1 63.510.000 lines fetched

RESIDENT read 00:00:36

you can try yourself, just make a qvd  to read and try this code

let ts = now(1);

T1: load * from T1.qvd (qvd);

let delta = interval(now(1) - '$(ts)');

trace QVD read $(delta);

let ts = now(1);

T2: NoConcatenate load * Resident T1;

let delta = interval(now(1) - '$(ts)');

trace RESIDENT read $(delta);

DROP Table T1;

pra_kale
Creator III
Creator III
Author

Thanks All for your Help...

Maxgro the link which you have shared is very very useful..

on that discussion, i have one question on point no.9 , off course only because i am not that much expert and just want to understand in depth.

9.- Avoid RESIDENT loads. If needed, load twice from a QVD.

But, so far my understanding is once you load the data into qlik from QVD data get's stored into Qlik memory, which is a feature of Qlik,  so use resident load if you required same data again and do not load same QVD again...

Thanks in advance.

maxgro
MVP
MVP

Yes you'right:

load from resident is a load from memory

and load from a qvd is a load from disk

Everyone can  think that reading from memory is faster.

My experience is a qvd optimized load is usually faster than a resident load (maybe because data in a QVD file is structured so that QlikView can load the content directly into memory); if you have some millions of records it doesn't matter, if you have some tens of millions or more of records I suggest to check the 2 loads.

Also pay attention to optimized and non optimized qvd load

https://www.quickintelligence.co.uk/qlikview-optimised-qvd-loads/

pra_kale
Creator III
Creator III
Author

Thanks Massimo Grossi for your Help !!