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)