Showing posts with label List view throttling. Show all posts
Showing posts with label List view throttling. Show all posts

Saturday, 6 December 2014

Throttling Limits in SharePoint 2010


Throttling is a new feature in SharePoint 2010 lists. It allows SharePoint administrators to impose limits on the number of items returned by list queries from a list.

Now we will see this setting step-by-step.

Open the SharePoint 2010 Central Administration website.

application management
                                                                              Image 1.

Click here Application Management.

manage web application
                                                                              Image 2.

Click Manage web applications here.

Manage Web application here
                                                                              Image 3.

Select your SharePoint site then click on General Settings then click on Resource Throttling.
It may be a you can get the following screen after clicking here.

Click on Resource Throttling
                                                                                 Image 4.

No need to worry. Use the following procedure.

Open SharePoint 2010 Management PowerShell and use the following code:

$w = get-spwebapplication http://Site_URL
$w.HttpThrottleSettings
$w.Update()


Now again select your SharePoint site then click on General Settings then click on Resource Throttling.

Resource Throttling
                                                                     Image 5.

General Setting
                                                                            Image 6.

backword compatible
                                                                              Image 7.

Do the settings as you want.

The following is the description of all settings:
  • List View Threshold: Defaults to 5000.

  • Object Model Override: Yes/No radio buttons. The default value is Yes.

  • List View Threshold for Auditors and Administrators: Defaults to 20000.

  • List View Lookup threshold: Defaults to 6.

  • Daily Time Window for Large Queries: Check this option that, when enabled, allows setting of a start time and a maximum duration.

  • List Unique Permissions Threshold: Defaults to 50000.

  • Backward-Compatible Event Handlers: On/Off radio buttons. Defaults to Off.

  • HTTP Request Monitoring and Throttling: On/Off radio buttons. Defaults to On.

  • Change Log: Defaults to 60 days after which log entries are deleted. Can be set to Never.

Reference:

http://www.c-sharpcorner.com/UploadFile/rahul4_saxena/throttling-limits-in-sharepoint-2010/


Thursday, 4 September 2014

Working with Large Lists in SharePoint 2010 - List Throttling

List throttling is one of the new options in SharePoint 2010 that enable to set limits on how severely users can put the beat down on your servers. In a nutshell, what it does is allow you to set a limit for how many rows of data can be retrieved for a list or library at any one time. The most basic example of this would be if you had a list with thousands of items, and someone created a view that would return all of the items in the list in a single page. List throttling ensures that such a request would not be allowed to execute. The hit on the server is alleviated, and the user gets a nice little message that says sorry, we can’t retrieve all of the data you requested because it exceeds the throttle limit for this list.
The kinds of operations that can trigger hitting this limit though aren’t limited to viewing data – that’s just the easiest example to demonstrate. There are other actions that can impact a large number of rows whose execution would fall into the list throttle limits. For example, suppose you had a list with 6000 items and a throttle limit of 5000. You create a view that only displays 50 items at a time, but it does a sort on a non-indexed column. Behind the scenes, this means that we need to sort all 6000 items and then fetch the first 50. If you are going to delete a web with large flat lists you potentially have the same problem. We need to select all of the items for all of the lists as part of the site deletion, so we could again hit the throttling limit. These are just a few examples but you can start to imagine some of the others.
So how does this work and how do we manage it? It all starts in central admin. List throttling is an attribute that you will generally manage at the web application level. So if you go into Central Admin, click on Application Management, then click on Manage Web Applications. Click a single web application to select it, then in the ribbon click on the General Settings drop down and select the Resource Throttling menu item. It displays a dialog with the several options; I’ll only cover the ones related to list item throttling in this blog:
· List View Threshold – this is the maximum number of items that can be retrieved in one request. The default value is 5,000. Important to note as well, the smallest you make this value is 2,000.
· Object Model Override – as described above, this option needs to be enabled in order to enable super users to retrieve items through the object model, up to the amount defined in the List query size threshold for auditors and administrators.
· List View Threshold for Auditors and Administrators – this is a special limit for “super users”. It is important to understand that this DOES NOT allow these super users to see more items in a list view. This property is used in conjunction with the Allow object model override property described below. That means that if the Allow object model override property is set to Yes, then these super users can retrieve up to the number of items set in this property, but only via the object model. The way you become a “super user” is a farm admin creates a web application policy for you that grants you rights to a permission level that includes either the Site Collection Administrator and/or Site Collection Auditor rights. By default both the Full Read and Full Control permission levels include these rights, and you can create your own custom policy permission levels that do as well. Creating this policy is done the same way as it was in SharePoint 2007.
· List View Lookup Threshold – again, nothing to do with the maximum number of rows returned from a list but it’s right in the middle of these so I couldn’t leave it out. This one is self-explanatory I think.
· Daily Time Window for Large Queries – this option allows you to create a block of time during the day, typically when usage is low, that you will allow queries to run and not enforce the list throttling limits. The one thing to remember here is that if you execute a query during that time period, it will run until complete. So if it’s still running when the daily window period closes, the query will continue to execute until all results have been returned.
There are a couple of additional exceptions to the information above:
1. If you are box administrator on the WFE where the data is being requested, and you have at least Read rights to the list data, then you will see ALL the rows. That means if you have 10,000 rows in a list and you execute a query or view that has no filters, you will get back all 10,000 rows.
2. In the object model a list (and library) is represented by the SPList class. It has a new property in SharePoint 2010 called EnableThrottling. On a list by list basis you can set this property to false. When you do that, throttling will not be enabled for views or object model queries. So again, if your list has 10,000 items and you execute a query or view that has no filters, you will get back all 10,000 rows.
In order to retrieve information using the object model in order to retrieve up to the number of items specified in the List query size threshold for auditors and administrators property, there is a property you need to set in your query object. The property is called QueryThrottleMode and it applies to the SPQuery and SPSiteDataQuery classes. You simply set this property to Override and then use your class instance to query. Here’s a simplified example:
using (SPSite theSite = new SPSite("http://foo"))
{
using (SPWeb theWeb = theSite.RootWeb)
{
SPList theList = theWeb.Lists["My List Name"];
SPQuery qry = new SPQuery();
qry.QueryThrottleMode = SPQueryThrottleOption.Override;
//set the Query property as needed to retrieve your data
SPListItemCollection coll = theList.GetItems(qry);
//do something with the data
}
}
Now that you know what the properties are about, let’s talk about the ways in which you use them. Assume the following scenario:
· # of items: 3000
· EnableThrottling property: true
· Default view: display items in batches of 3000
· List View Threshold property: 2500
· List View Threshold for Auditors and Administrators : 2800
· Object Model Override : Yes
· Method for OM Query: SPQuery with QueryThrottleMode = Override, query retrieves all items
Here’s how users would be able to access the data in the list:
User Type
List View
Object Model
Reader
No items shown; over threshold
No items returned; over threshold
Super User
No items shown; over threshold
No items returned; over admin and auditor threshold
Box Admin
3000 items shown per page
3000 items returned


Now let’s change the rules; the differences from the original scenario are highlighted in yellow:
· # of items: 3000
· EnableThrottling property: true
· Default view: display items in batches of 3000
· List View Threshold property: 2500
· List View Threshold for Auditors and Administrators : 3500
· Object Model Override : Yes
· Method for OM Query: SPQuery with QueryThrottleMode = Override, query retrieves all items
User Type
List View
Object Model
Reader
No items shown; over threshold
No items returned; over threshold
Super User
No items shown; over threshold
3000 items returned
Box Admin
3000 items shown per page
3000 items returned


Another scenario:
  • # of items: 3000
  • EnableThrottling property: false
  • Default view: display items in batches of 3000
  • List View Threshold property: 2500
  • List View Threshold for Auditors and Administrators : 3500
  • Object Model Override : Yes
  • Method for OM Query: SPQuery with QueryThrottleMode = Override, query retrieves all items
User Type
List View
Object Model
Reader
3000 items shown per page
3000 items returned
Super User
3000 items shown per page
3000 items returned
Box Admin
3000 items shown per page
3000 items returned


Final scenario:
  • # of items: 3000
  • EnableThrottling property: true
  • Default view: display items in batches of 2500
  • List View Threshold property: 2500
  • List View Threshold for Auditors and Administrators : 3500
  • Object Model Override : Yes
  • Method for OM Query: SPQuery with QueryThrottleMode = Override, query retrieves all items
User Type
List View
Object Model
Reader
2500 items shown per page
No items returned; over threshold
Super User
2500 items shown per page
3000 items returned
Box Admin
2500 items shown per page
3000 items returned


List throttling is a powerful tool but there are a few rules and roles you need to remember when planning your implementation. Hopefully this blog will help identify and clarify the functionality for you so that you can implement a design that makes sense for your scenario.


Reference:

http://blogs.technet.com/b/speschka/archive/2009/10/27/working-with-large-lists-in-sharepoint-2010-list-throttling.aspx


 

Performance with SharePoint 2010 Large lists – List view throttling


SharePoint 2010 lists and libraries can hold a maximum number of 30,000,000 items. In a SharePoint site the list view threshold is 5000 for users and 20,000 for auditors and administrators.
SharePoint large list and libraries operations like Delete/Update are one of the top performance killers.
What can we do if the server is overloaded when we access large lists and libraries? One solution is list view throttling.
A. List view throttling
List view throttling protects the server from unintentional load by limiting the number of list items returned per view. When the list view is greater than throttle limit, users receive a message that all the data cannot be retrieved.
Resource throttling monitors CPU %, Available Memory, ASP.NET Queue and Wait time in Queue. Every 5 seconds a timer job is checking resources. Throttling will begin after 3 unsuccessful checks. This throttling period will end after one successful check of the resources.
During a period of active throttling, HTTP GET requests and Search Robot requests will generate a 503 error and will be logged in the event viewer and no new timer jobs will begin.
Resource throttling counters can be changed via PowerShell commands. More in this article
Activate List throttling
Remark: Is recommended to configure at the Web Application level
- Go to SharePoint Central Administration
clip_image002
- Click on Application Management, and then click on Manage Web Applications.
clip_image004
- Click on a single web application to select it, then in the ribbon click on the General Settings drop down and select the Resource Throttling menu item
clip_image006
- A new page will open with the following fields:
- List View Threshold – this is the maximum number of items that can be retrieved in one request, all operations that exceed this limit are blocked. The default value is 5,000, the smallest is 2000.
clip_image007
- Object Model Override – this option needs to be enabled in order to enable auditors or administrators to retrieve items through the object model
clip_image008
- List View Threshold for Auditors and Administrators – this is a special limit for “super users”. Allow super users to retrieve up to the number of items set in this property via object model. Object model override needs to be activated. More in this article
clip_image009
- List View Lookup Threshold – This feature limits the number of Lookup, Person/Group, or Workflow Status fields that a query can perform. It should not be greater than 8
clip_image010
- Daily Time Window for Large Queries - this option allows you to create a block of time during the day, typically when usage is low, that you will allow queries to run and not enforce the list throttling limits.
clip_image011
- List Unique Permissions Threshold – This is the maximum number of unique permissions allowed per list or library
clip_image012
- Turn Backward-Compatible Event Handlers on or off. By default, this is off. If you have a large amount of development work in SharePoint Server 2007 that leveraged event handlers for lists or libraries, you will want to turn this on. You should check with your developers if you are upgrading from SharePoint Server 2007.
clip_image013
- Configure HTTP Request Monitoring And Throttling. This changes the setting in IIS for all Web servers in the farm for this Web application. You can turn request throttling off to allow services like search to run uninterrupted on the farm.
clip_image014
- Change Log constraints, do not to reduce this too much because it will negatively affect servers that rely on history information for sites contained in the Web application
clip_image015
- Click on Ok
Before applying list view throttling is recommended to test the functionality in a test environment by performing different stress tests.
B. SharePoint indexed columns
Another important step to improve list performance is indexing SharePoint columns. This option with query throttling strategies can help you to improve the performance of large lists.
You can index up to 20 columns but be aware that not all of the columns types are supported to be indexed. Here you have a complete list.
Activate Indexed columns
Remark: Before applying the following operations be sure you are doing them during the “Daily time Window” if List throttling is active, because creating an index requires accessing all the items in the list.
- Navigate to your SharePoint list and library
- In the ribbon, under List Tools or Library Tools, click the List or Library tab
clip_image017
- In the Settings group, click List Settings or Library Settings.
clip_image018
- Under the Columns section, click Indexed columns.
clip_image020
- On the Indexed Columns page, click Create a new index.
clip_image022
- Do one of the following:
To create a simple index:
- In the Primary Column section, under Primary column for this index, select the column.
clip_image024
- Click Create.
To create a compound index:
- In the Primary Column section, under Primary column for this index, select the column.
clip_image026
- In the Secondary Column section, under Secondary column for this index, select a different column.
clip_image028
- Click Create.
Thank you for reading this article.


Reference:

http://www.sharepointboco.com/performance-with-sharepoint-2010-large-lists-list-view-throttling/