Disabilitazione temporanea della soglia della visualizzazione elenco per un elenco di grandi dimensioni

Disabilitazione temporanea della soglia della visualizzazione elenco per un elenco di grandi dimensioni

Corpo:

In SharePoint 2010 sono stati aggiunti alcuni nuovi limiti per proteggere i server e gli altri utenti da operazioni che consumano molte risorse eseguite accidentalmente da altri utenti. Per un elenco completo di limiti e limitazioni del software in SharePoint 2010, fare clic qui https://technet.microsoft.com/en-us/sharepoint/ff601870.aspx. Per ulteriori informazioni sul significato dei diversi limiti, fare clic qui per visualizzare l'argomento della Guida https://office2010.microsoft.com/en-us/sharepoint-server-help/manage-lists-and-libraries-with-many-items-HA010378155.aspx?redir=0. Per un esame più approfondito delle caratteristiche che consentono di gestire elenchi di grandi dimensioni e per le procedure consigliate previste, leggere il white paper Progettazione di elenchi di grandi dimensioni e ottimizzazione delle prestazioni degli elenchi https://technet.microsoft.com/en-us/library/ff608068(office.14).aspx.

Soglia visualizzazione elenco è una delle soglie che fanno parte delle impostazioni di "limitazione delle risorse" di ogni applicazione Web gestibili in Amministrazione centrale. Il valore predefinito è 5.000, a indicare che qualsiasi visualizzazione o query tenti di elaborare più di 5.000 elementi per volta verrà bloccata dal server di SharePoint. Ad esempio, nel caso di una visualizzazione in cui viene applicato un filtro basato su una colonna non indicizzata in un elenco con 5.001 elementi, verrà visualizzato un messaggio in cui si informa l'utente che la query è stata bloccata dall'impostazione di Soglia visualizzazione elenco. Se inoltre è definito un periodo di tempo durante la giornata in cui è possibile eseguire tali operazioni, nel messaggio verrà indicato l'orario in cui l'operazione sarà consentita.

Poco dopo l'aggiornamento, è possibile che alcuni utenti non riescano ad accedere ai propri dati tramite le visualizzazioni già esistenti in precedenza e che per accedere ai dati nel modo desiderato (ad esempio ordinati in base a una colonna denominata "colore") debbano aggiungere un indice all'elenco di grandi dimensioni in uso. Continueranno tuttavia a essere bloccati dal limite di Soglia visualizzazione elenco e pertanto non potranno eseguire questa attività a meno che non si verifichino le condizioni seguenti:

  1. Gli utenti attendono il periodo di tempo durante la giornata eventualmente abilitato dall'amministratore per l'esecuzione di operazioni di questo tipo. Per impostazione predefinita, questo intervallo di tempo non è definito, poiché deve essere una decisione cosciente dell'amministratore individuare l'orario più adatto "non di punta" dell'organizzazione. Questa è l'azione consigliata, ma a volte non è sufficiente se l'utente necessita di accedere ai dati immediatamente.
  2. L'amministratore della farm aumenta il valore di Soglia visualizzazione elenco in modo significativo, affinché chiunque disponga di un elenco molto esteso sia comunque in grado di accedere a tutte le visualizzazioni. Non è consigliabile procedere in questo modo, poiché rappresenta un rischio elevato per l'integrità e la stabilità del server e anziché risolvere un problema che interessa un numero limitato di persone può creare problemi generalizzati e incoraggiare la creazione di visualizzazioni e query strutturate in modo inadeguato.
  3. L'amministratore concede all'elenco specifico dell'utente un'esclusione temporanea dall'applicazione del limite di Soglia visualizzazione elenco. Questa esclusione può essere definita solo a livello di programmazione. Verrà illustrato come eseguire questa operazione e come rimuovere l'esclusione dopo che è trascorso il periodo specificato per gli utenti. È consigliabile concedere questa esclusione con molta cautela e rimuoverla il prima possibile. Nella maggior parte dei casi, dovrebbe essere più che sufficiente concedere agli utenti una settimana per correggere le visualizzazioni o il codice personalizzato.

Per disabilitare la soglia della visualizzazione elenco per un elenco specifico, è possibile utilizzare il modello a oggetti per modificare la proprietà "EnableThrottling" dell'elenco impostandola su false (il valore predefinito è true). Nel codice riportato di seguito viene illustrato come effettuare questa operazione per un elenco specifico o per tutti gli elenchi di un determinato sito. È consigliabile concedere questa esclusione solo a elenchi specifici anziché a un intero sito, poiché concedendola avendo come base la granularità è possibile tenere traccia dei problemi che possono determinare un rallentamento del server, nonché ribadire agli utenti finali l'importanza di correggere gli elenchi il prima possibile.

Di seguito è riportato uno script scritto da Chris Clark, un tester del team SharePoint, per l'applicazione di questa modifica. Per annullare la modifica, ovvero rimuovere l'eccezione per un elenco o per tutti gli elenchi di un sito Web, cambiare la riga seguente:

$list.EnableThrottling = $false

in:

$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 https://localhost -ListName "Shared Documents"

#               makeexceptionlist.ps1 -WebUrl https://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.EnableThrottling = $false

     $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!"

                UpdateList( $list )

     }

     else

     {

                Write-Host "List not found.  Exiting"

                exit 1;

     }

}

else

{

     Write-Host "Invalid List Name"

     exit 1;

}

Write-Host "Done!"

exit 0;

###########################################################################

#   End

#

###########################################################################

- Dina Ayoub

Program Manager per SharePoint, Microsoft

Data pubblicazione: 15/08/2010 23.40

Questo è un post di blog localizzato. L'articolo originale è disponibile in Temporarily disabling List View Threshold on a large list.