cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
forbudt4u
Resolver I
Resolver I

Collection Build Time

Just curious if someone could possibly explain Collection processing time guidelines base on experience and/or documentation?  There may not be an exact answer, but I'm running into an issue that makes it very difficult for end users when searching because of the loading time, and I'm trying to find a happy medium to work with.

 

My current conditions are as follows

  • I have a gallery [SearchGallery_1] Item's property that's filtering from a SharePoint list based on the text entered into a text input box.  The gallery produces the results I need pretty quickly... usually around a second for every 50 records to completely load, so for example, it takes around 3 seconds if the search produces 150 records.
  • For  a host of reasons (mainly multiple level filtering), [SearchGallery_1] is not visible as I am using the results of this gallery to build a collection [_SearchGalleryResults].  However, for reference, here is a link to a thread I started specifically about why I was doing this that I got absolutely no bites on, but was able to work through it (https://powerusers.microsoft.com/t5/Building-Power-Apps/Filtering-within-Pop-Up-Guidance/m-p/857070).
  • My collection is initiated/built based on the Search Text Input box's OnChange property with the DelayOutput set to true.
  • I have a visible gallery [SearchGallery] (which the user can see results in) that has it's items property to display the results of the built [_SearchGalleryResults] collection.

Issue and reason for question about Collection build times

  • In my testing I will place the non-visible SearchGallery_1 in a visible status so I can compare the two galleries as I type search text into my text input box.  As always, the SearchGallery_1 pretty much instantaneously shows my results, but the visible SearchGallery takes roughly 5 seconds for every 10 records I have.  So, that 150 record result used as an example above can take 1 to 1 1/2 min's to show the results.  Note that before I changed the text input DelayLoad property to true, the process would take twice as long and even lock up the app (even in the app edit mode) and force me to close out if it was a larger pool of records.  
  • I fully understand the Collection must build from the SearchGallery_1 results before my visible SearchGallery gallery can display the results, but this process seems to take a much longer time than it should.  This is strictly my opinion based on the fact that I'm doing something very similar with another screen's OnVisible property and the gallery results are produced fairly quickly.  The only difference being that the results of this gallery are static and not dependent on changing search text.
  • I personally think the delay is tied to what I am using to initiate/build my collection (OnChange property of the text input), but to my knowledge, I don't think I can build a collection once a gallery fully loads. Seeing that my collection depended SearchGallery_1 is pretty much instant, this would be a better option over what I'm currently doing.    

With all that being said, I'm hoping I can get some experts opinions on what I'm experiencing here and see if there's something I could do a little different to help minimize the load time?  It's almost unbearable, but, I absolutely need to maintain my multi-level filtering functionality.  

3 REPLIES 3
RandyHayes
Super User
Super User

@forbudt4u 

So, I looked at your referenced post as well.  I think you got no hits on it because you hit on it yourself.  A lot of us that answer posts in here will scroll through the lists looking for posts with 0 responses.  If a post has a response or more, then we move on to the next.  There are just too many posts to read all.  So, in the future, you might just Edit your original post and add new information as needed.  Otherwise it looks like someone is responding.

 

Now....that said.

Collections are overhead for your app.  Consider that (especially looking at the other post) you are duplicating data over and over and over again.
You first have the main collection - your datasource.  Many don't realize, but this is already a "collection"/table.  It has some very special "powers" to it to be able to get data as needed and to sync with the main session table (the one that gets created in the cloud when you start your app).

So...if you then duplicate all of this into a collection, then you end up forcing the data on demand feature of the datasource which causes it to then get all the data and send it to your app collection (the datasource, not your other collection).  So, now that this datasource has the table, your ClearCollect is clearing an in memory table and then duplicating all the data in the datasource table into the collection table.  

THEN you are using that collection as the basis for the Gallery search results and THEN you are creating a collection on the Gallery results to use on another Gallery.  PLUS, each time the screen is made visible, you are clearing all the collections and doing it all over again!

Can you sense anything that might slow your app down yet??

 

PowerApps is a no-code solution platform.  It is build with the same concept as Excel with referential formulas and calculations.  It builds on that power tremendously with other functions, but that first point should never be lost.

Think about Excel...if you build a formula in a cell to do some calculation on, let's say, some costs and quantities, if you then need to calculate tax percentages or other additional calculations, you build on that cell by putting a formula in another cell to reference the result of the first.  And...you repeat this process building on results to get you what you want in all places.  You DON'T create a variable for each cell and then set other cells to build on the variable...that doesn't makes sense.  Yet, there are places for that in Excel.

Why mention this?  Because Collections are variables.  They are snapshots of tables at a given point of time.  They do NOT update unless you update them.  And...the answer usually is - ClearCollect.  Which means they are flushed and refilled - a time consuming process.

 

My suggestion and advice is this.  There are only a handful of places where a collection is REALLY needed.  Try to avoid using them unless you have those scenarios (offline ability, the inability to delegate, an in memory database).

Use the datasource directly.  Cut out the redundant Galleries.  Place well structured formulas in your Items properties.  Utilize dynamic data when possible. Don't try to "engineer" a solution to a performance problem that you created based on a problem you didn't have.  If your app is done and you experience performance issues, THEN resolve the issue.  Keep it Super Simple!! 

 

From the experience side of things, we design a lot of apps.  From fairly simple to very complex (speaking in terms of business logic).  Rarely do we use a collection.  Never do we use invisible Galleries to provide data for another.  Rarely do we use invisible controls for data for others.  Often do we use dynamic variables (I wish I could get my video done on this process...it is extremely valuable).  Always do we keep it simple.

 

So, that is my $0.02 on the subject.  Too often do people think the answer to performance is a collection.  More often do people find that once they have them in place, performance gets worse.  Now, my statements are "in general" for everything here.  There is a time and place for all the pieces available in the PowerApps suite.  But, you don't always need a heavy tractor trailer truck if all you need to haul is a table lamp...and you just might find that the tractor trailer creates some expenses and problems you would never have had before.

 

I hope this is helpful for you.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

@RandyHayes 

 

Thank you for your honesty.  I definitely see where me replying to my post could have caused confusion and that's why I didn't get any replies. 

 

From a logic standpoint, everything else you touched on ALL makes sense and I can follow it.  In my linked original post (and in this one), I tried to relay that I didn't think using a collection was the best route to take.  I also didn't understand why the original developer used that method for our main screen OnVisible property to formulate the original pop-up filter or why they used a pop-up for our admin portal over a separate screen.  However, that's what they did and that's where I'm at.  Unfortunately, the developer in question suffered the fate a lot of companies have due to Covid, so we're stuck trying to resolve a lot of issues not having anyone to ask questions to or development docs to rely on.

 

Your advice has pretty much convinced me that I need to totally go back to the drawing board on our main Asset Management Screen, Admin Portal, Galleries, and filters as a whole.  The sad part is that it's doing what I need it to do, it's just taking too long with one important aspect.  

 

Thanks again, Randy!

RandyHayes
Super User
Super User

@forbudt4u 

The unfortunate part is that a lot of designers reuse the "examples" found in the docs.  These weigh heavily on collections for "quick examples".   How many times have you sat through a presentation about development where the presenter said - "now, you wouldn't do it this way in your development, I'm just doing this to demonstrate the core topic."?  Unfortunately the docs don't say that.  Then compound that with people who start doing that method and then do blogs and videos with it...pretty soon everyone thinks that's just how you do it.  It's not!!  My guess, in looking at that formula in the other post, your designer got a lot of his info from those sources without really grasping the concepts.

Now, my best suggestion would be to re-do it and get rid of it and design it 1000% better.  But, it sounds like you are constrained from that.  So, perhaps some simple changes like, in the OnVisible, checking to see if you have ALREADY collected the data.  If not, then do it.  If so, then don't.  Also looking at the Gallery formulas and combining them in a way to reduce the redundant gallery.

Little things like that can help a lot. 

Also, make use of the monitoring tool to really focus on what IS and what IS NOT a performance issue.  If you want the most for any changes you make, use that tool to make sure you are really changing something that is causing a problem.  Nothing worse then putting an hour into redesigning something to solve a problem, only to find that the problem still exists.

 

And, as always...post on the forum if you get stuck or have questions...just be careful - you'll get a lot of "you need a collection for this" responses sometimes - because there is a "conditioning" that that's the way you do it.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

Helpful resources

Announcements

Exclusive LIVE Community Event: Power Apps Copilot Coffee Chat with Copilot Studio Product Team

  It's time for the SECOND Power Apps Copilot Coffee Chat featuring the Copilot Studio product team, which will be held LIVE on April 3, 2024 at 9:30 AM Pacific Daylight Time (PDT).     This is an incredible opportunity to connect with members of the Copilot Studio product team and ask them anything about Copilot Studio. We'll share our special guests with you shortly--but we want to encourage to mark your calendars now because you will not want to miss the conversation.   This live event will give you the unique opportunity to learn more about Copilot Studio plans, where we’ll focus, and get insight into upcoming features. We’re looking forward to hearing from the community, so bring your questions!   TO GET ACCESS TO THIS EXCLUSIVE AMA: Kudo this post to reserve your spot! Reserve your spot now by kudoing this post.  Reservations will be prioritized on when your kudo for the post comes through, so don't wait! Click that "kudo button" today.   Invitations will be sent on April 2nd.Users posting Kudos after April 2nd. at 9AM PDT may not receive an invitation but will be able to view the session online after conclusion of the event. Give your "kudo" today and mark your calendars for April 3rd, 2024 at 9:30 AM PDT and join us for an engaging and informative session!

Tuesday Tip: Unlocking Community Achievements and Earning Badges

TUESDAY TIPS are our way of communicating helpful things we've learned or shared that have helped members of the Community. Whether you're just getting started or you're a seasoned pro, Tuesday Tips will help you know where to go, what to look for, and navigate your way through the ever-growing--and ever-changing--world of the Power Platform Community! We cover basics about the Community, provide a few "insider tips" to make your experience even better, and share best practices gleaned from our most active community members and Super Users.   With so many new Community members joining us each week, we'll also review a few of our "best practices" so you know just "how" the Community works, so make sure to watch the News & Announcements each week for the latest and greatest Tuesday Tips!     THIS WEEK'S TIP: Unlocking Achievements and Earning BadgesAcross the Communities, you'll see badges on users profile that recognize and reward their engagement and contributions. These badges each signify a different achievement--and all of those achievements are available to any Community member! If you're a seasoned pro or just getting started, you too can earn badges for the great work you do. Check out some details on Community badges below--and find out more in the detailed link at the end of the article!       A Diverse Range of Badges to Collect The badges you can earn in the Community cover a wide array of activities, including: Kudos Received: Acknowledges the number of times a user’s post has been appreciated with a “Kudo.”Kudos Given: Highlights the user’s generosity in recognizing others’ contributions.Topics Created: Tracks the number of discussions initiated by a user.Solutions Provided: Celebrates the instances where a user’s response is marked as the correct solution.Reply: Counts the number of times a user has engaged with community discussions.Blog Contributor: Honors those who contribute valuable content and are invited to write for the community blog.       A Community Evolving Together Badges are not only a great way to recognize outstanding contributions of our amazing Community members--they are also a way to continue fostering a collaborative and supportive environment. As you continue to share your knowledge and assist each other these badges serve as a visual representation of your valuable contributions.   Find out more about badges in these Community Support pages in each Community: All About Community Badges - Power Apps CommunityAll About Community Badges - Power Automate CommunityAll About Community Badges - Copilot Studio CommunityAll About Community Badges - Power Pages Community

Tuesday Tips: Powering Up Your Community Profile

TUESDAY TIPS are our way of communicating helpful things we've learned or shared that have helped members of the Community. Whether you're just getting started or you're a seasoned pro, Tuesday Tips will help you know where to go, what to look for, and navigate your way through the ever-growing--and ever-changing--world of the Power Platform Community! We cover basics about the Community, provide a few "insider tips" to make your experience even better, and share best practices gleaned from our most active community members and Super Users.   With so many new Community members joining us each week, we'll also review a few of our "best practices" so you know just "how" the Community works, so make sure to watch the News & Announcements each week for the latest and greatest Tuesday Tips!   This Week's Tip: Power Up Your Profile!  🚀 It's where every Community member gets their start, and it's essential that you keep it updated! Your Community User Profile is how you're able to get messages, post solutions, ask questions--and as you rank up, it's where your badges will appear and how you'll be known when you start blogging in the Community Blog. Your Community User Profile is how the Community knows you--so it's essential that it works the way you need it to! From changing your username to updating contact information, this Knowledge Base Article is your best resource for powering up your profile.     Password Puzzles? No Problem! Find out how to sync your Azure AD password with your community account, ensuring a seamless sign-in. No separate passwords to remember! Job Jumps & Email Swaps Changed jobs? Got a new email? Fear not! You'll find out how to link your shiny new email to your existing community account, keeping your contributions and connections intact. Username Uncertainties Unraveled Picking the perfect username is crucial--and sometimes the original choice you signed up with doesn't fit as well as you may have thought. There's a quick way to request an update here--but remember, your username is your community identity, so choose wisely. "Need Admin Approval" Warning Window? If you see this error message while using the community, don't worry. A simple process will help you get where you need to go. If you still need assistance, find out how to contact your Community Support team. Whatever you're looking for, when it comes to your profile, the Community Account Support Knowledge Base article is your treasure trove of tips as you navigate the nuances of your Community Profile. It’s the ultimate resource for keeping your digital identity in tip-top shape while engaging with the Power Platform Community. So, dive in and power up your profile today!  💪🚀   Community Account Support | Power Apps Community Account Support | Power AutomateCommunity Account Support | Copilot Studio  Community Account Support | Power Pages

Super User of the Month | Chris Piasecki

In our 2nd installment of this new ongoing feature in the Community, we're thrilled to announce that Chris Piasecki is our Super User of the Month for March 2024. If you've been in the Community for a while, we're sure you've seen a comment or marked one of Chris' helpful tips as a solution--he's been a Super User for SEVEN consecutive seasons!       Since authoring his first reply in April 2020 to his most recent achievement organizing the Canadian Power Platform Summit this month, Chris has helped countless Community members with his insights and expertise. In addition to being a Super User, Chris is also a User Group leader, Microsoft MVP, and a featured speaker at the Microsoft Power Platform Conference. His contributions to the new SUIT program, along with his joyous personality and willingness to jump in and help so many members has made Chris a fixture in the Power Platform Community.   When Chris isn't authoring solutions or organizing events, he's actively leading Piasecki Consulting, specializing in solution architecture, integration, DevOps, and more--helping clients discover how to strategize and implement Microsoft's technology platforms. We are grateful for Chris' insightful help in the Community and look forward to even more amazing milestones as he continues to assist so many with his great tips, solutions--always with a smile and a great sense of humor.You can find Chris in the Community and on LinkedIn. Thanks for being such a SUPER user, Chris! 💪🌠

Find Out What Makes Super Users So Super

We know many of you visit the Power Platform Communities to ask questions and receive answers. But do you know that many of our best answers and solutions come from Community members who are super active, helping anyone who needs a little help getting unstuck with Business Applications products? We call these dedicated Community members Super Users because they are the real heroes in the Community, willing to jump in whenever they can to help! Maybe you've encountered them yourself and they've solved some of your biggest questions. Have you ever wondered, "Why?"We interviewed several of our Super Users to understand what drives them to help in the Community--and discover the difference it has made in their lives as well! Take a look in our gallery today: What Motivates a Super User? - Power Platform Community (microsoft.com)

March User Group Update: New Groups and Upcoming Events!

  Welcome to this month’s celebration of our Community User Groups and exciting User Group events. We’re thrilled to introduce some brand-new user groups that have recently joined our vibrant community. Plus, we’ve got a lineup of engaging events you won’t want to miss. Let’s jump right in: New User Groups   Sacramento Power Platform GroupANZ Power Platform COE User GroupPower Platform MongoliaPower Platform User Group OmanPower Platform User Group Delta StateMid Michigan Power Platform Upcoming Events  DUG4MFG - Quarterly Meetup - Microsoft Demand PlanningDate: 19 Mar 2024 | 10:30 AM to 12:30 PM Central America Standard TimeDescription: Dive into the world of manufacturing with a focus on Demand Planning. Learn from industry experts and share your insights. Dynamics User Group HoustonDate: 07 Mar 2024 | 11:00 AM to 01:00 PM Central America Standard TimeDescription: Houston, get ready for an immersive session on Dynamics 365 and the Power Platform. Connect with fellow professionals and expand your knowledge. Reading Dynamics 365 & Power Platform User Group (Q1)Date: 05 Mar 2024 | 06:00 PM to 09:00 PM GMT Standard TimeDescription: Join our virtual meetup for insightful discussions, demos, and community updates. Let’s kick off Q1 with a bang! Leaders, Create Your Events!    Leaders of existing User Groups, don’t forget to create your events within the Community platform. By doing so, you’ll enable us to share them in future posts and newsletters. Let’s spread the word and make these gatherings even more impactful! Stay tuned for more updates, inspiring stories, and collaborative opportunities from and for our Community User Groups.   P.S. Have an event or success story to share? Reach out to us – we’d love to feature you!

Top Solution Authors
Top Kudoed Authors
Users online (5,810)