Performance Issues with huge OQL tables & filters

0
Hi everyone,   in our App we are often required to show 200-300 objects in a table or gallery (kanban board for example) and have advanced filters options that go beyond just simple text searches in a column (e.g. searching for an attribute in an associated object).   In order to make that possible we use an OQL query as a string, that gets updated depending on the set filters by the user.   When redirecting from that page (by clicking on a row or an object of the result) the page is increasingly slow, due to many non-persistent objects loaded in the cache/runtime. This has to do with the retrieval via the OQL.   The redirection and overall performance of those tables/views have gotten so slow, that we have to do somthing about it.   Anyone with a similar problem or different approach how to handle those types of overview pages with advanced filtering? Any suggestion is appreciated!   BR Markus
asked
4 answers
1

Hi everyone, thank you all for your answers. I'm a colleague of Markus and currently working this topic. We have solved the issue by dividing into 2 steps:

 

First implementing custom pagination buttons below the gallery/datagrid to set the offset attribute for OQL query. Therefore Its limited to 10/12 objects per request. Which make the next process faster (12 compared to 200+ objects)

 

After gathering the return list of the non-persistent objects, we retrieve the real projects by association and make a new list from them. Then we delete the non-persistent objects' list. Therefore nothing showed on the page and when redirecting, no new requests made to the server.

 

Overall we are benefiting from two world. OQL helps us just for the filters (a lot quicker than the list operations) and end result of the real project objects are showing in the gallery/datagrid (quicker redirecting response). 

 

 

answered
0

ProjectList.pngFilterList.png

These are the main page and the filter page

answered
0

Did you check your client state size?

What you describe sounds like many non-persistent objects are kept in the client.

https://docs.mendix.com/refguide/minimize-number/

https://docs.mendix.com/refguide/monitoring-client-state/

 

answered
0

Can you share the OQL query?

answered