Deshabilitación temporal del umbral de la vista de lista en listas de gran tamaño
En SharePoint 2010, se han agregado algunos límites nuevos para proteger los servidores y a otros usuarios de operaciones costosas llevadas a cabo accidentalmente por otros usuarios. Para ver una lista completa de los límites máximos y los límites del software SharePoint 2010, haga clic aquí http://technet.microsoft.com/en-us/sharepoint/ff601870.aspx. Si desea obtener más información sobre el significado de los diferentes tipos de límite haga clic aquí para leer el tema de ayuda http://office2010.microsoft.com/en-us/sharepoint-server-help/manage-lists-and-libraries-with-many-items-HA010378155.aspx?redir=0. Para obtener más detalles sobre las características que le ayudan a administrar listas de gran tamaño y sobre los procedimientos recomendados, lea las notas del producto sobre el diseño de listas de gran tamaño y maximización del rendimiento de listas http://technet.microsoft.com/en-us/library/ff608068(office.14).aspx.
El umbral de la vista de lista es uno de los umbrales que se encuentra bajo la configuración de "limitación de recursos" para cada aplicación web, que se puede administrar en Administración central. Está establecido en 5.000 de manera predeterminada; esto significa que el servidor de SharePoint bloqueará cualquier vista o consulta que intente procesar más de 5.000 elementos a la vez. Por ejemplo, una vista que filtra una columna no indizada en una lista que tiene 5.001 elementos recibirá un mensaje que indicará al usuario que el umbral de la vista de lista bloqueó la consulta y, si hay un intervalo de tiempo diario establecido, el mensaje también indicará las horas durante las cuales se permite realizar esa operación.
Poco tiempo después de la actualización, es posible que algunos usuarios descubran que no pueden obtener acceso a los datos a través de las vistas que tenían y que para obtener acceso a los datos de la forma en que desean hacerlo (por ejemplo, ordenados por una columna llamada "color") deben agregar un índice a la lista de gran tamaño. Sin embargo, sigue existiendo la limitación del umbral de la vista de lista, por lo que solo podrán hacerlo si:
Para deshabilitar el umbral de la vista de lista para una lista en particular se puede usar el modelo de objetos para editar la propiedad "EnableThrottling" de la lista como false (la opción predeterminada es true). El siguiente código muestra cómo hacerlo para una lista en particular o para todas las listas de un determinado sitio. Es aconsejable otorgar esta exención solo a listas específicas y no a un sitio completo, ya que de esta forma es más fácil hacer un seguimiento de las posibles causas del mal rendimiento del servidor y subrayar la importancia de arreglar las listas lo más rápido posible para los usuarios finales.
Aquí hay un script escrito por Chris Clark, un evaluador del equipo de SharePoint, para realizar este cambio. Para revertir el cambio (es decir, quitar la excepción de una lista o de todas las listas de un sitio web), simplemente cambie esta línea:
$list.EnableThrottling = $false
to:
$list.EnableThrottling = $true
###########################################################################
# MakeExceptionLIst Script
# OnFailure: NONE
# OnSuccess: Changes SPList settings to make one or more lists under an SPWeb Exception Lists
#
# Input Parameters:
# - WebUrl ~ The URL of the SPWeb which contains the lists to be made exception lists
# - ListName (Optional) ~ The name of the list to make an exception list
# Ex:
# makeexceptionlist.ps1 -WebUrl http://localhost -ListName "Shared Documents"
# makeexceptionlist.ps1 -WebUrl http://localhost/sites/site1 -ListName "*"
# Exit code rule:
# On success, exit 0
# On failure, if no other scripts depend on this, exit a none-zero value
# Do not use "return" to give the caller exit code, as this cannot be
# captured by the caller process.
Param([string]$WebUrl = "", [string]$ListName = "")
# Add Sharepoint pssnapin
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
# Turn off/on list throttling on selected list
Function UpdateList($list)
{
$listname = $list.Title
Write-Host "Making list $listname an exception list"
$list.Update()
}
# Retrieve relevant objects (SPWeb, SPList) for operation and call Update
$web = Get-SPWeb $WebUrl
if( $web -eq $NULL )
Write-Host "Web not found. Exiting"
exit 1;
if ( $ListName -eq "*" )
Write-Host "Locating all Lists under web..."
$lists = $web.Lists
foreach( $list in $lists )
UpdateList( $list )
elseif ( $ListName -ne "" )
Write-Host "Locating List < $ListName >..."
$list = $web.Lists[$ListName]
if ( $list -ne $NULL )
Write-Host "List found!"
else
Write-Host "List not found. Exiting"
Write-Host "Invalid List Name"
Write-Host "Done!"
exit 0;
# End
- Dina Ayoub
Directora de programas de SharePoint, Microsoft
Esta entrada de blog es una traducción. Encontrará el artículo original en Temporarily disabling List View Threshold on a large list