I am finding several performance issues with PowerApps and after using the Monitor am discovering how inefficient it is.
For example, I have a function to count the number of rows in one list based on criteria. In my case I have a list of projects and a list of issues. The Project ID is one of the fields in the Issue list, so when I am showing a gallery of projects I want to show the Count of how many Issues each project has. In PowerApps, I use a function like this:
CountRows(Filter(Issue, Project_ID=ThisItem.ID)))
In Monitor, when I look at the data being transferred for this one call, I see instead of a single value, such as 8, being returned that instead I get 8 rows of the entire Issue list being transferred across the network.
If instead I were writing this as a mobile app in Xamarin, I would have called a web service that returns the number 8 when I pass in a Project ID. Or better yet, I would pass a set of project IDs and get back in a single call a set of issue counts.
Similarly, in SQL, I could write a query like this:
SELECT COUNT(ID) FROM Issue WHERE ProjectID = ?
And this would return for me a single number.
Why with PowerApps does it find the need to download all of the Issue records for the project in order to figure out how many of them there are?
Am I the only one out there who is frustrated by this? Am I just doing something wrong?
Thanks for your answers in advance!