Comparing collections, table variables and data sources in Power Apps

In Power Apps you can use data sources directly or you could use collections or you could use variables. But what is the difference?

Performance and behaviour

In my example app I’m reading data from a SharePoint list and display this in three galleries. Within the app startup I’m setting a variable and a collection to the content presented by the connection to my SharePoint list.

The variable and the collection are set using the following two lines of code in my app on start code. The first line is creating a variable using the Set Function and the second line is creating a collection using ClearCollect.

Set(varItems, Connectors);
ClearCollect(colItems, Connectors)

Now as my app loads the 3 galleries, we can see a difference quite quickly. When I count the items in the three galleries I’m finding 100 or 500 items. So that means that the connection loads only the first 100 items in my connection.

Scrolling through data from connections

And as we scroll through the data, we will find that the gallery needs to load the next page of data and the item count is increasing by 100 every time I try to read the last items in the gallery.

The galleries that load the data using the collection or the variable however don’t show this behaviour.

So should we always use collections/variables?

In the above two short videos you can already see that the collections/variable based galleries took a lot longer to load, while the gallery that used the connection directly performed a lot better straight away.

But there are a few more differences.

Collections and variables and CountRows

Before the data has been loaded, the variable behaves in a different way from the collection and the datasource.

You might have noticed earlier that the variable returns 0 on an empty table, while the other two options return a blank value.

Comparing collections, table variables and data sources in Power Apps Microsoft Power Apps image 16

The variable of the type table, has been initialized as a table, while the collection has not been initialized until the data has been read.

Collections Overview

Then the final major difference between variables and collections is the way Power Apps is managing them within the UI. If we first look at the collection overview, we can see that the data in the collection is being displayed.

Collections overview

When we compare the collections overview with the variables overview then we can see where the variable is defined (in our case in the App.Onstart) and where it has been used. While we can still see the data in the variable as well.

variables overview

The above variables overview could sometimes help when you try to debug you app.

Continue Reading Pieter Veenstra’s Article on their blog

Comparing collections, table variables and data sources in Power Apps

In Power Apps you can use data sources directly or you could use collections or you could use variables. But what is the difference? In my example app I’m reading data from a SharePoint list and display this in three galleries.

Blog Syndicated with Pieter Veenstra’s Permission

Author: Pieter Veenstra

Share This Post On