Hi,
In my page, there is a table component associated to a GQI query "Get object manager instances" for displayling data.
There is in database thousand instances for the DOM definition i chose and the number is set to increase considerably.
When i refresh the page, the loading time is reasonable (3-4 seconds).
I added a Column Custom Operator to the query. And now the loading time is excessive long (30 seconds).
If i 've understood the doc correctly, if i do not have filter, it is not possible to optimize custom operators, thousand instances will be scanned? Optimizing your custom operator | DataMiner Docs
How can i improve performance?
Do i need to create a custom GQI ad hoc source with paging?
public GQIPage GetNextPage(GetNextPageInputArgs args)
Do you have an example of usage?
Thanks
Kévin
Hi Ward,
Thanks for your feedback. Not sure to understand, because as you can see in the following screenshot (GQI query), there is no filter by default when the page is opened. There is a sorting operation to have the latest elements at the top.
Regards
Kévin
Hi Kévin,
The sort operator might be causing the performance decrease, similar to what we discussed regarding the filter operator. Typically, GQI tries to apply sorting as close to the database as possible. However, with a custom operator, it can’t do this automatically.
To resolve this, you’ll need to modify your custom operator to forward the sort operation to the database. This is the same optimization principle used for the filter operator.
Instead of the ‘OptimizeForFilter’ method you can use the ‘OptimizeForSort’ method. (https://docs.dataminer.services/user-guide/Advanced_Modules/Dashboards_and_Low_Code_Apps/GQI/Extensions/Custom_Operator/Tutorials/Custom_Operator_Tutorial.html)
Let me know if you have any questions!
Best regards,
Ward
EDIT: If you would apply the custom operator at the end of your query (after the sort) the performance of the query itself should be better already. But, when a user clicks the table header to apply sorting, behind the scenes an additional sort operator is added and performance might be worse again.
Hello,
the point is we need to display data coming from several type of objects linked together by relationship.
In a traditionnal SQL database like Postgres or Oracle, we would create an SQL view and map it to a specific entity and we could benefits of all the capabilities you mention.
Question is, is it possible to create views or something similar in Dom model ?
Hi Julien, sorry for the (extremely) late reply. It is, afaik, not possible to create views within the DOM model. With your GQI query you are in fact creating a view on your data layer. Did performing above suggested performance improvements help you? Best regards, Ward
I see that this question has been inactive for some time. Do you still need help with this? If not, could you select the most relevant answer (this can also be your own answer)?