Help on Office Hours suggestion to improve Speed of UIBuilder Page

Hi there,
I have a UI Builder page that I am trying to improve loading time for.

The main delay is coming from 1 API call which is taking 11.15s.

This is a single Load Table Objects block that loads from an App View.

It usually loads between 15-30 objects.

Each object has about 30 properties.

What is the best thing that will reduce the time to load?

Is it reducing the number of objects?
Reducing the number of properties per object?
Going for an app table instead of an app view?
Is it normal that this API call is taking so long?

Thanks.

Hi @Andreas_Marinopoulos ,

Could you please provide your app ID?

What is the best thing that will reduce the time to load?

It depends on the specific situation. In your case such big response time can be caused by view complexity - the more complex view configuration and the bigger source table the more time can take request for such view.

I should see your view and source tables first before giving any advice.

Regards Andriy

@Andriy_Konoz

App ID: 4A47197B-AE30-FA84-FF56-0071F4010900

The view is called tutordash.

We could try pulling data from 1 app table instead, gathering other data from the related tables if you think that will help.

@Andreas_Marinopoulos ,

In your case view become to complex. DB uses two strategies to handle views - “Merge” and “TempTable”. By default DB tries to apply first strategy since it is faster but it can fallback to second strategy when views columns are defined on aggregation functions. “TempTable” strategy forces DB to create a temporal table for each request. This imposes big execution time penalty. The bigger source tables - the bigger this penalty will be.

As I can see from view definition you have column oneSlotOnly which is based on count aggregation function. If you want to continue to use this view and keep small loading time I would recommend you to remove that column and also remove groupBy if it is possible. Otherwise you need to fallback to direct queries for tables.

For playing around you can use “Client-driven query” for view.

Regards, Andriy