# Row owners large tables - performance - breaks the page?

**URL:** <https://community.glideapps.com/t/row-owners-large-tables-performance-breaks-the-page/56360>\
**Category:** Ask for Help\
**Created:** [January 5, 2023, 5:51am UTC](https://community.glideapps.com/t/row-owners-large-tables-performance-breaks-the-page/56360 "2023-01-05T05:51:34Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![abdo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/abdo/32/36540_2.png) [@abdo](https://community.glideapps.com/u/abdo)\
**Post date:** [January 5, 2023, 5:51am UTC](https://community.glideapps.com/t/row-owners-large-tables-performance-breaks-the-page/56360/1 "2023-01-05T05:51:34Z")

</div>

Would it be possible to use row owners on large apps 5-10k rows?

I’m using Glide Pages, but even in the editor, adding row owners breaks the app and reloads. Switching users requires quite some time before the correct data reloads and also breaks the app at points and reloads.  
I have 2 columns as row owners  
I understand Glide must confirm if the user is a row owner before downloading the row, scaling on thousands of rows is that going to really affect performance, are row owners an option to use ?

---

<div class="post-metadata">

**Author:** ![abdo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/abdo/32/36540_2.png) [@abdo](https://community.glideapps.com/u/abdo)\
**Post date:** [January 5, 2023, 5:58am UTC](https://community.glideapps.com/t/row-owners-large-tables-performance-breaks-the-page/56360/2 "2023-01-05T05:58:12Z")

</div>

the only reason I’m trying to use row owners is to improve performance and allow users to reduce the amount of data and computations done on their device… i’m worried its going to have the opposite effect of slowing down users or reloading the app.

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [January 5, 2023, 6:03am UTC](https://community.glideapps.com/t/row-owners-large-tables-performance-breaks-the-page/56360/3 "2023-01-05T06:03:07Z")

</div>

Absolutely. If you have very large tables then applying Row Owners is one of the best ways to improve performance for your end users.

Yes, the behaviour in the builder can sometimes be a bit flakey when switching users. But don’t worry about that, I’ve never known it to not work correctly in the published App.

---

<div class="post-metadata">

**Author:** ![abdo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/abdo/32/36540_2.png) [@abdo](https://community.glideapps.com/u/abdo)\
**Post date:** [January 5, 2023, 6:20am UTC](https://community.glideapps.com/t/row-owners-large-tables-performance-breaks-the-page/56360/4 "2023-01-05T06:20:33Z")

</div>

I’m very confident it doesn’t work correctly in the published app. I tried it on apps a few month ago and it didn’t work at all. Some users couldn’t load the app, others couldn’t see all rows they should see… other users had the app reloading every few minutes.

That was a Glide App, I was just hoping and checking if on pages it would be better …?

Especially considering that my Glide Page has way way less computed columns than the Glide App.

On a quick note if that maybe helps, my row owner columns are based in Google Sheet. One of these columns is a string of 3 words with a comma (Store1, Store2, Store3) sometimes empty.

The other one is a string of 1 word (sometimes empty) and it changes once during the day depending on which Store becomes the sole row owner of the row.

---

<div class="post-metadata">

**Author:** ![nathanaelb](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/nathanaelb/32/43079_2.png) [@nathanaelb](https://community.glideapps.com/u/nathanaelb)\
**Post date:** [January 5, 2023, 6:29am UTC](https://community.glideapps.com/t/row-owners-large-tables-performance-breaks-the-page/56360/5 "2023-01-05T06:29:25Z")

</div>

If you’re applying ownership with strings, I’m wondering if you might have more success if you used roles instead.

For row ownership, I think you probably need to apply it to an email column.

EDIT: For row ownership, I think you probably need to apply it to an email column _or an array_.

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [January 5, 2023, 6:31am UTC](https://community.glideapps.com/t/row-owners-large-tables-performance-breaks-the-page/56360/6 "2023-01-05T06:31:11Z")

</div>

> [@abdo](#):
>
> On a quick note if that maybe helps, my row owner columns are based in Google Sheet. One of these columns is a string of 3 words with a comma (Store1, Store2, Store3) sometimes empty.

That almost certainly explains why it wasn’t working for you - because you weren’t applying it correctly.

With an owner column containing the value `Store1, Store2, Store3`, the _only_ user that would ever see rows in that column would be one that had a Role of _exactly_ `Store1, Store2, Store3`

---

<div class="post-metadata">

**Author:** ![abdo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/abdo/32/36540_2.png) [@abdo](https://community.glideapps.com/u/abdo)\
**Post date:** [January 5, 2023, 6:33am UTC](https://community.glideapps.com/t/row-owners-large-tables-performance-breaks-the-page/56360/7 "2023-01-05T06:33:40Z")

</div>

Yes i’m using roles for sure.  
Each user is a store… their role is their store name

---

<div class="post-metadata">

**Author:** ![abdo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/abdo/32/36540_2.png) [@abdo](https://community.glideapps.com/u/abdo)\
**Post date:** [January 5, 2023, 6:37am UTC](https://community.glideapps.com/t/row-owners-large-tables-performance-breaks-the-page/56360/8 "2023-01-05T06:37:36Z")

</div>

actually in the editor it was working. users with role store1 were viewing the rows with row owner store1,store2,store3. or I might have to check this further, maybe if you are store1 you could see this row, but store 2 cannot see it…  
i remember in the app I created an array in Google sheets and hence used row owners on that in the app.  
but my issue is not seeing the rows really, i can follow your advice on that  
My main concern is why the app breaks, reloads when row owners are applied.

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [January 5, 2023, 6:41am UTC](https://community.glideapps.com/t/row-owners-large-tables-performance-breaks-the-page/56360/9 "2023-01-05T06:41:59Z")

</div>

> [@abdo](#):
>
> but my issue is not seeing the rows really, i can follow your advice on that  
> My main concern is why the app breaks, reloads when row owners are applied.

Because you are applying them incorrectly.

What you need to do is split that comma separated string in to 3 separate columns. Something like this:

```auto
Owner 1 | Owner 2 | Owner 3
----------------------------
Store 1 | Store 2 | Store 3

```

Glide will see them as an array column in the Data Editor, and then you can apply row owners to the array column.

---

<div class="post-metadata">

**Author:** ![abdo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/abdo/32/36540_2.png) [@abdo](https://community.glideapps.com/u/abdo)\
**Post date:** [January 5, 2023, 7:25am UTC](https://community.glideapps.com/t/row-owners-large-tables-performance-breaks-the-page/56360/10 "2023-01-05T07:25:28Z")

</div>

Yes i got this. I tried exactly this in Glide Apps and it didn’t work, i recalling it being posted here in the community as well. Will give it another try soon or search for the post.

Currently I totally removed this column as row owner and I’m only using 1 column that either contains the user role or empty.

In the glide editor it is still breaking every time I change the user.  
From my device as a user, the app takes way longer to load (which is fine) but any screens with a collection, scrolling down, using search bar etc… are really way slower than normally.

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [January 5, 2023, 7:43am UTC](https://community.glideapps.com/t/row-owners-large-tables-performance-breaks-the-page/56360/11 "2023-01-05T07:43:08Z")

</div>

Okay, something doesn’t sound right.

I’d like to see a few screen shots of how you have this setup. Maybe I can spot something that isn’t obvious to you.

I can guarantee you that it works perfectly when it’s correctly set up. I use multiple roles as row owners in tables that are many times larger than the one you’ve described, and I’ve never encountered these sorts of problems.

---

<div class="post-metadata">

**Author:** ![abdo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/abdo/32/36540_2.png) [@abdo](https://community.glideapps.com/u/abdo)\
**Post date:** [January 5, 2023, 8:26am UTC](https://community.glideapps.com/t/row-owners-large-tables-performance-breaks-the-page/56360/12 "2023-01-05T08:26:02Z")

</div>

Let me set it all up again in this new Glide Page project and i’l post more here.

One thing i’m concerned about… this big table is an items table 5-10k rows. Items that have been ordered.  
Due to users request, I have to create a relation between every row and the other rows… in order to join same items and sum them up. (with some other filters).  
so for example:  
Item A Store 1 Qty 1  
Item A Store 1 Qty 2  
will appear in the app as  
Item A Store 1 Total Qty 3 (to sum things up for users)

I’m aware this relation is a disaster performance wise… From your experience, should I totally avoid this?

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [January 5, 2023, 8:30am UTC](https://community.glideapps.com/t/row-owners-large-tables-performance-breaks-the-page/56360/13 "2023-01-05T08:30:43Z")

</div>

No, that should be fine. Honestly, 5-10k rows really isn’t that much. A self referencing relation on a table that size should have negligible impact on performance.
