I have some apps that seem to be fine with App memory/CPU usage and DB CPU usage, but very high DB Memory usage. What are some common mistakes people have seem that can cause this? I’ve read one suggestion such as the following: “ Mistakes that are often made in long microflows is clearing lists for instance after there use is no longer needed.” How exactly would clearing a list cause DB Memory usage to be high?
In my experience, the following 2 things result in high database memory usage:
microflows that update a large number of objects in the database or update large numbers database objects with individual create/update/delete activities. These kinds of microflows can lead to very large database transactions that don’t complete until the microflow is done. This best practice talks about this in some more detail: https://docs.mendix.com/refguide/performance-best-practices/#mxp004
queries (retrieve activities or datagrids/listviews/templategrids) that perform complex multi-entity joins on entities with a lot of records. No quick way to tune these, just understanding what your users need and seeing if there are better or quicker ways to accomplish these things. Indexes can be helpful here too.