cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
BClouded
Helper IV
Helper IV

Slow Performance Big App Many SharePoint Lists - What are the Options?

Hi Community,
I have built a rather big power app for a customer and everything went fine until recently. The performance is really dropping and loadtimes are very high. The App uses about 20 SharePoint lists which vary in size from a few records to about 3000 records at the moment of writing. 
All those lists are connected to each other 'programmatically'. In which I mean. For example: In the InvoiceList I have a ClientID and ProjectID.
So when the user loads the gallery of invoices. For invoice there is a lookup in getting some clientdata and another lookup to get some projectdata. So of course this is generating a lot of networkrequests. 

I already decreased that delegation limit from 2000 to 1200. Since most delegation warnings I receive are not really an issue. (at least not data wise).

Loading data in a collection at startup. Does this improve performance, or is loading data in cache just decreasing performance?
The application is running on a desktop with a high enough CPU and more then enough Memory and with high speed internet connection.

Could it also be that MS is reducing our performance as it might have noticed we are using "a lot" of server resources, with a basic license?  

What are your thoughts about it? 

Thanks for thinking along.
Bart



3 REPLIES 3
BCLS776
Super User
Super User

Your issue probably has little to do with any Microsoft-imposed API throttling or limits. The limits included with most accounts are generous, especially for a single app.

As an app maker, you will need to make compromises/decisions on:

  • Loading data into collections, if it potentially saves you multiple reloads later
  • The number and complexity of controls on a single screen
  • How often the app refreshes data sources, automatically or using the Refresh() function
  • How many columns & rows do you load from a data source. Smart use of delegable Filter() operations helps a ton. Why load 1200 records if you need only one?
  • The underlying data structure, if everything seems like a lookup to everything else
  • Using Power Automate flows to perform operations more efficiently than you can through a Power App, but with added complexity

There is no single "right answer" to these considerations and there's more to consider too. You may need to trade off a bit of performance for a better overall user experience, and vice-versa.

Hope that helps,

Bryan

_________________________________________________________________________________________
Help the community help more users by choosing to "Accept as Solution" if this post met your needs. If you liked the post and want to show some appreciation, please give it a Thumbs Up.
BClouded
Helper IV
Helper IV

Hi, @BCLS776 ,

Thanks for your insights. I changed the app now, to load the most frequently asked data to load in a collection at startup. This seems to have a good impact on overall performance.

However, is there a way I can be sure if I hit Microsoft API limits? Loading time yesterday evening after a long day of testing, and thus generating a lot of requests. App.OnStart could take 3 minutes. This morning, all data was loaded in 1 second! As you can see in the screenshot of the monitor below. I don't understand why there are such big differences in performance. The only thing I can think of is that my 'servertime' is being limited. 

BClouded_0-1648192149626.png

 



Hi Bart,

 

See this document for service limits associated with different licences. You could be running up against the limits after a big day of testing, which would explain getting throttled. There are connector limits too, but these tend to take the form of "100 requests per 60 seconds". I don't think your app will push those limits.

 

You can sign up for 30 day trials of premium licencing to try out. These offer higher API call limits and better service tiers (more responsive). If you notice a huge leap in performance when going to a premium licence, that's a sign you are pushing hard on the standard licence.

 

Do take further looks at how your app handles data. Lots of community members build complex, data intensive apps using standard licencing and they work great. I find 80-90% of my customers don't need premium licencing or they need it for only a few of their accounts. Throwing more compute resources at a problem isn't the only solution.

 

Bye for now,

Bryan

_________________________________________________________________________________________
Help the community help more users by choosing to "Accept as Solution" if this post met your needs. If you liked the post and want to show some appreciation, please give it a Thumbs Up.

Helpful resources

Announcements
PA Virtual Workshop Carousel 768x460.png

Register for a Free Workshop

This training provides practical hands-on experience in creating Power Apps solutions in a full-day of instructor-led App creation workshop.

PA.JPG

New Release Planning Portal (Preview)

Check out our new release planning portal, an interactive way to plan and prepare for upcoming features in Power Platform.

Users online (4,120)