Skip to main content
Open

Only load data for columns that are shown

  • November 25, 2024
  • 5 replies
  • 118 views

AndreKemmeren
Captain
Forum|alt.badge.img+3

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)

5 replies

Erik Brink
Moderator
Forum|alt.badge.img+5
  • Moderator
  • December 18, 2024

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.


Erik Brink
Moderator
Forum|alt.badge.img+5
  • Moderator
  • December 18, 2024
NewOpen

AndreKemmeren
Captain
Forum|alt.badge.img+3
  • Author
  • Captain
  • December 18, 2024

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


Marius Korff
Captain
Forum|alt.badge.img+7
  • Captain
  • February 17, 2026

I’ d like to see this implemented 😀


AndreKemmeren
Captain
Forum|alt.badge.img+3
  • Author
  • Captain
  • February 17, 2026

We still strongly believe this is something Unversal/Indicium should handle on it's own however this issue has started to become very pressing.

I have created a POC where we created a list only view (meta auto) that only contains the fields that we actually use in the list/grid view and the performance gains are stagering.

Opening the normal list takes up to 10 seconds, depending on used filters and execution plan cache. The POC view only takes 500ms at most. Same number of records, same database, same everything apart from fact that only the fields that are shown in the list are the ones that get loaded from the database.

 

Sure our base view is very heavy but this would be beneficial for everyone, every bit of unnecessary usage is to much.