Large List Throttling for External Lists in SharePoint 2010

I’ve already done one post with information on the new list throttling features in SharePoint 2010. This week the question came up about how that applies, or what applies, to throttling lists based on External Content Types (ECT). These are lists that you’ll also hear called Virtual Lists sometimes or External Lists, and refer to data that’s being retrieved using the new BCS framework in SharePoint 2010. BCS is the evolution of BDC from SharePoint 2007 for those of you not familiar with it.

 

But getting back to list throttling…Chris C. was good enough to point out that external lists don’t use the same list throttling mechanisms that I described in my first post. They have their own throttle thresholds and ways in which to change them. Mohammed N. was kind enough to share these default limits (subject to change by RTM time, by the way) as well as include some PowerShell examples of how you can modify these values yourself. Thanks for this info Mohammed!

 

So, here are the out of the box throttling limits for external lists. Note that these limits are applied per instance of the Business Data Catalog service application; if you have multiple instances then each one can have different values:

 

Data Type Limit Type Limit
Database Rows per fetch 2000
Database Timeout 3 minutes
Web Service / WCF Size of fetch 30MB
Web Service / WCF Timeout 3 minutes

 

Now, here’s a few PowerShell examples that Mohammed had to share; note that it assumes you have an instance of the Business Data Catalog service application called “Business Data Catalog”:

 

$bdcAppProxy = Get-SPServiceApplicationProxy | where {$_ -match "Business Data Catalog"}

 

$throttleDb = Get-SPBusinessDataCatalogThrottleConfig -Scope Database -ThrottleType Items -ServiceApplicationProxy $bdcAppProxy

Set-SPBusinessDataCatalogThrottleConfig -Identity $throttleDb -maximum 10000 -default 8000

 

$throttleWCF = Get-SPBusinessDataCatalogThrottleConfig -Scope WCF -ThrottleType Size -ServiceApplicationProxy $bdcAppProxy

Set-SPBusinessDataCatalogThrottleConfig -Identity $throttleWCF -maximum 100000000 -default 50000000

 

$throttleConn = Get-SPBusinessDataCatalogThrottleConfig -Scope Global -ThrottleType Connections -ServiceApplicationProxy $bdcAppProxy

Set-SPBusinessDataCatalogThrottleConfig -Identity $throttleConn -maximum 200 -default 150