I am facing a weird issue, where some of the sheets of my application is consuming all the available RAM of Server which is accessed through Access Point.
There are 15 sheets in the application and the total size of the .qvw file is ~1 GB. The available RAM on the Server is 100+ GB. There are approx. 5-7 users accessing the Application from Access Point as of now.
The application extensively uses : Triggers, Different types of Charts, Dynamic dimensions, Alternate State, variables, etc. to achieve the desired functionality, but the moment some of the sheets are opened the RAM consumption goes very high and within 1-2 minutes it consumes all the RAM and the Server becomes in-accessible. If we do not open those sheets, the RAM consumption is between 20 to 50 GB (just an observation).
Any idea what can cause a small application (~1 GB in size) to consume > 100 GB of RAM?
Is it the application design or Server configuration or corrupt document or anything else which is causing this issue?
In debug mode try a limited load of 10 or fewer rows. This indicate if your problem is due to invalid associations between tables or synthetic keys.
Otherwise check that you are not combining data from tables that are not associated - this will cause a cartesian join between the tables.
If table A has 100,000 rows and table B has 100,000 rows and the tables are not associated, using fields from table A and B in the same chart will cause QlikView to generate 100,000 x 100,000 roes of data 10,000,000,000 rows!
so if the problem is only in one of the sheets, i recommend to generate the .mem file or check the calculation time of the charts in this sheet to see what is the chart that is causing this anomaly, check if you have calculated dimensions (not recommended) and if you have complex expressions maybe it would be better to minimize the charts by default or add calculation conditions on the charts to force the users to make selections before displaying this chart this will definitely improve the performance. other thing to check is the triggers on the sheet opening.
unfortunately QV does not have tools available to dedect, which object requires the RAM (unless opened).
If open, the MEM.file might assist.
We went through the painful way in opening each object in each sheet and to watch the RAM-consumption simultaneously on the server in order to identify the object.
Finally it turned out to a combination of several causes: a calculation referring to the total number of records, an object (pivot-table), building a cartesian product and finally a clone of this object as server-object ....