web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / Reading more than 100k...
Power Apps
Answered

Reading more than 100k rows

(1) ShareShare
ReportReport
Posted on by 71

Hi Community,

I have a table with 100k rows on sql, I need your help to choose the adequate standard connector I can use to be able to read those rows? Can I use sharepoint or Excel or there is another best solution?

 

Thank you in davance

Categories:
  • poweractivate Profile Picture
    11,078 Most Valuable Professional on at

    @datalearner 
    I don't think a SharePoint connector can connect to your SQL server.
    To use SharePoint List with SQL you probably need to first set up dataflows or some other solution which synchronizes your SQL with SharePoint List. Those features themselves may involve Power BI Pro and actually be even more expensive than just to use a premium connector and upgrade to the per user plan.

    It may be simplest to upgrade and then use the SQL Server Connector which would allow you to use your SQL server directly as a data source. SQL Server is also great supporting delegation in certain places where SharePoint List does not (like the "in" operator for example, among others).

     

    See if it helps @datalearner 

  • datalearner Profile Picture
    71 on at

    HI @poweractivate 

    I am not willing to connect directly to sql since it requieres a premium license.

    Just want to make sure that Sharepoint does not have a data row limit when connected to Power Apps which is the case for Excel file size.

     

    Thank you in advance

  • Verified answer
    poweractivate Profile Picture
    11,078 Most Valuable Professional on at

    @datalearner The data row limit in a Power Apps Canvas App should apply to all data sources as far as I know. The default is 500, and you can raise it to 2,000. Suppose it's 2,000. Even when you use a fully delegable function call, such as a fully delegable Filter, I believe the data row limit might still apply, per individual function call. So even if there are 100,000 rows, and suppose 5,000 rows match your filter criteria, it's possible that due to the data row limit, only 2,000 records are returned in some cases (your mileage may vary).

    If it were non-delegable, only the first 2,000 records out of the whole 100,000 records would be scanned, and only matches out of the first 2,000 would be picked, all the rest discarded, and that would be the highest level of inaccuracy.

    However, delegation does not necessarily mean unlimited power to escape the data row limit in an absolute, indiscriminate manner.  Even for SQL Server Connector. Even if all 100,000 records may be processed on the data source side, it is entirely possible that the data row limit applies to the filtered records, and there's no delegation warning because it is actually not a "Delegation" issue at that point. 

    Even if more than 2,000 records were allowed, this may start to slow down the app and it's not recommended. Many cases using Power Apps don't benefit from such a massive number of records being shown at once. Especially since we're dealing with support for multiple form factors, especially mobile devices, the sheer huge number of records becomes almost impossible to humanly process. It's best instead to design the app with lots of intelligent Filters and bring the number of filtered records well below 2,000, as low as possible and as seamless of a user experience as possible.

     

    To clarify your point, the data row limit should exist even when using Premium connectors, the data row limit is sometimes called the "Delegation limit" but the concepts are distinct. There's actually just one concept, the "data row limit" but let's think of it as two concepts for simplicity. "delegation" and "data row limit".

    Assume 2,000 is the data row limit again.

    The "delegation warning" thing means it takes the data row limit and applies it to the first X records to manually process on Canvas App side, as there is no possibility for the integration with the data source itself to do this currently, so it is the most likely to be unusable for production when there's more than 2,000 total records in the data source, as only the first 2,000 records in order of the primary key are scanned and everything after is discarded. After that, any Filter or anything else is applied only on that set of the first 2,000 records. 

     

    However, even with no delegation warning, that's not an absolute escape or guarantee of data completeness. It's entirely possible you have more than 2000 records satisfying your filter criteria. It is also possible you get back only 2000 records in that case as that is the data row limit. There's no warning here, because there's no "Delegation" issue - the formula was fully delegated. However, no function is immune to the "data row limit". An individual function call returns up to a max of the data row limit. It's up to you to intelligently design the Filter so it returns less records. The data row limit is applicable to all data sources as there aren't unlimited resources on the client, especially since we're dealing with diverse clients like mobile devices, tablets, etc.

    2,000 is the highest you can raise it to (note it's 500 by default actually).  
    There are tricks to try and force it to go higher, most of these rely on the underlying idea that it's a max of the data row limit per function call. So some tricks try and force the collection to be larger such as by using Collect calls inside ForAll in batches, and leaving the outer table returned by ForAll completely unused, but I almost never recommend things like that except in very rare cases as these are generally bad practice, bad habits and may lead to poor performance of the app.

     

    Whenever we see a ForAll that is outside a Patch, and the outer ForAll is unused, this is a common example of this being done frequently, sometimes without even realizing it. However it's almost always better to put the Patch outside the ForAll instead, as we minimize the number of calls to the data source (Patch) from the number of iterations in ForAll, down to just 1 call, which is a big difference, much better performance, and just makes much more sense.

     

    Note that when you want to do partial searches on text fields, SharePoint List data source doesn't have an easy way to do this directly from the Canvas App (we need workarounds like using a Cloud Flow) whereas the "in" operator on Text from Canvas App Power Fx formula is directly and fully delegable on SQL Server connector. 

     

    SQL Server has a data row limit just like SharePoint because Canvas apps have the data row limit for any data source.

     

    So in your case if you like SharePoint, you can go ahead and use SharePoint if you can figure out how to make it work for you. SharePoint is very powerful, and I recommend it even for very large cases, if you can manage it 🙂

     

    Hope it helps @datalearner 

  • takolota1 Profile Picture
    4,980 Moderator on at

    @datalearner @poweractivate 

     

    Some of the workarounds for SharePoint delegation & search have gotten pretty fast, flexible to different needs, & capable of handling large amounts of data: https://powerusers.microsoft.com/t5/Community-App-Samples/Large-SP-List-Delegation-Workaround-App/td-p/2330721

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Winners!

Congratulations to our community stars!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Congratulations to the July Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Apps

#1
11manish Profile Picture

11manish 402 Super User 2026 Season 2

#2
Mohsin Ali Profile Picture

Mohsin Ali 328

#3
WarrenBelz Profile Picture

WarrenBelz 296 Most Valuable Professional

Last 30 days Overall leaderboard