Skip to main content

Currently Universal loads all data from the table or view that the user has access to, regardless if the data is shown in the table or not. 

 

In our experience this massively increases the load on the database, not only when using views that have logic and many sources in them but especially when you have a table/view that has many relations with other tables with lookups defined. 

Every lookup creates a join or an apply.

 

We even ran into situations where the query became so complicated that compiling the query by the SQL engine was taking multiple seconds (4+) while if I take the query thats been generated by Incidium and alter it to only include the columns that are actually shown the compilation only takes about half a second. 

The plan is barely cached due to parameters + the fetch offset being used in the front end. 

I can supply TW with example query thats been generated and my altered version if requested. 

 

Suggestion:
Only load the actual data being shown instead of the entire row(s)

Great idea, aldough it is not the easiest question for our software to predict this. 

You can control it yourself already working with subject variants  Indicium already takes those into account in secting columns of a subject.

We will keep this open to investigate in detail in the future.


NewOpen

I fail to understand why it’s hard to predict as Universal knows exactly what columns currently being shown to the user.


If we’d use variants for it that would also mean the users would not be able to add those columns