Statistiche non aggiornate del database una riduzione delle prestazioni di SharePoint Server, verificarsi dei timeout e generano errori di run-time

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 3103194
Informazioni sulle statistiche di database
Statistiche per l'ottimizzazione delle query sono oggetti che contengono informazioni statistiche sulla distribuzione dei valori in una o più colonne di una tabella o vista indicizzata. Query optimizer utilizza queste statistiche per stimare la cardinalità, o il risultato di numero di righe, nella query. Queste stime di cardinalità attivare l'ottimizzatore di query creare un piano di query di alta qualità.

Ad esempio, query optimizer può migliorare prestazioni utilizzando le stime di cardinalità per selezionare l'indice di ricerca operatore anziché l'operatore di scansione dell'indice più risorse di query. In caso contrario, le statistiche non aggiornate possono ridurre le prestazioni delle query utilizzando i piani di query inefficienti.

Grande azienda di SharePoint deve disporre di piani di manutenzione database per aggiornare le statistiche di database nel database del contenuto che si trovano in Microsoft SQL Server. I clienti non devono basarsi solo sui processi di manutenzione database basato su SharePoint per eseguire queste operazioni. Per ulteriori informazioni, vedere Procedure consigliate per SQL Server in una farm di SharePoint Server.
Sintomi
Quando le statistiche di database diventano obsolete, installazioni di SharePoint Server si verifichi uno o più dei seguenti sintomi:
  • Tempi di caricamento lento e riduzione delle prestazioni che potrebbe generare un errore HTTP 500 quando si apre una pagina del sito
  • Rallentamento delle prestazioni che genera messaggi di errore analogo al seguente:

    Servizio non disponibile

    Eccezione SQL sconosciuto 53

    Errore del server in applicazione '/' errore di Runtime
  • Preforming ricerca ricerca per indicizzazione cause imprevisto le prestazioni di SQL Server, database di blocco
  • Processi timer a esecuzione prolungata, ad esempio i processi di "Microsoft SharePoint Foundation elaborazione dati di utilizzo" che accettano progressivamente più tempo durante ogni iterazione
  • L'impossibilità di aprire un sito di SharePoint e un messaggio di errore analogo al seguente:

    Imprevista System.Web.HttpException: Timeout della richiesta
  • Timeout di rendering del sito quando si carica di spostamento e il seguente messaggio di errore:

    PortalSiteMapProvider non è riuscito a recuperare gli elementi figlio di nodo
  • Utilizzo elevato della CPU sul server che esegue SQL Server durante l'elaborazione delle query di SharePoint
Cause
Questi problemi possono essere causati da statistiche non aggiornate del database. SharePoint consente di eseguire quotidianamente un processo timer per aggiornare le statistiche di database utilizzando la procedura SQL proc_updatestatistics . Tuttavia, per diversi motivi, questo processo timer non viene completato o potrebbe non essere aggiornati tutte le tabelle in modo coerente. Ad esempio, se una copia di backup viene eseguito sul database del contenuto da SQL Server contemporaneamente con il processo timer di SharePoint, non continua il processo.

Una volta completato il processo timer di SharePoint che aggiorna le statistiche, i registri ULS possono scrivere gli eventi seguenti:
  • e9bf "Errore durante l'aggiornamento delle statistiche del database: {0}"
  • cm1y "aggiornamento statistiche nel database: {0}"
  • dbl2 "operazione ignorata statistiche aggiornamento del database {0} perché lo stato è {1}"
  • cm1x "aggiornamento statistiche in tutti i database su {0}"
Se queste condizioni non sorvegliate attentamente e non vengono prese misure correttive, database statistiche diventano obsolete e infine si verificano problemi di prestazioni di SharePoint.
Risoluzione
Per evitare questi sintomi e potenziali interruzioni del servizio, piani di manutenzione di SQL Server devono essere implementati per mantenere aggiornate utilizzando l'opzione FULLSCAN le statistiche database del contenuto di SharePoint. Per ulteriori informazioni, vedere Statistiche dell'indice.

Quando si implementa il piano di manutenzione di SQL Server per aggiornare le statistiche dei database di SharePoint, non è necessario disattivare il processo da SharePoint. Tuttavia, poiché queste attività di manutenzione di eseguire funzioni simili da entrambe le posizioni, è ammissibile per disattivare il processo timer dalla farm SharePoint. Per ulteriori informazioni su come gestire il processo di aggiornamento di indici dal Server di SharePoint, vedere I database utilizzati da SharePoint obsolete statistiche dell'indice (SharePoint 2013).
Informazioni
Aggiornamento delle statistiche del database del contenuto di SharePoint, utilizzando l'opzione FULLSCAN, su base giornaliera da di SQL Server è consigliabile consiglia. Per ulteriori informazioni, vedere Procedure consigliate per SQL Server in una farm di SharePoint Server e Manutenzione del database per SharePoint Foundation 2010.

Tuttavia, se la farm di SharePoint si sono verificati problemi di prestazioni a causa delle statistiche non aggiornate, le informazioni seguenti possono utilizzate come passaggio occasionale di attenuazione per alleviare questo problema.

Per visualizzare informazioni sulle statistiche di database da un database specifico, eseguire la query seguente:
-- Checking the DB Statsselect a.id as 'ObjectID', isnull(a.name,'Heap') as 'IndexName', b.name as 'TableName', stats_date (id,indid) as stats_last_updated_time from sys.sysindexes as a inner join sys.objects as b on a.id = b.object_id where b.type = 'U'
Per ulteriori informazioni sulla revisione delle statistiche del database, vedere DBCC SHOW_STATISTICS.

Per aggiornare le statistiche di database su un singolo database che utilizza l'opzione FULLSCAN, eseguire la query seguente:
-- Update DB StatsEXEC sp_MSforeachtable 'UPDATE STATISTICS ? WITH FULLSCAN'
Nota importante L'opzione "sp_MSforeachtable" è una procedura documentata che viene fornita "così com'è" e deve essere utilizzato solo per attenuare il problema immediato. Si consiglia di non utilizzare questa procedura come parte di un piano di manutenzione regolare. Al contrario, vedere il nostroUPDATE STATISTICS (Transact-SQL) documentazione su come implementare un piano per l'aggiornamento delle statistiche, utilizzando l'opzione FULLSCAN.

Seconda come obsoleti sono diventate le statistiche del database, potrebbe essere necessario cancellare la cache dei piani di query mediante l'esecuzione di DBCC FREEPROCCACHE comando dopo aver aggiornato le statistiche del database. Troverete la sintassi e gli argomenti per questa procedura in DBCC FREEPROCCACHE (Transact-SQL). Questa operazione assicura che le nuove query utilizzare il piano di esecuzione ottimali dopo aver aggiornate le statistiche del database. Ad esempio, vedere la seguente query:
-- Remove all elements from the plan cacheDBCC FREEPROCCACHE
Nota importante Esecuzione del comando DBCC FREEPROCCACHE Cancella la cache per tutti i piani di query nell'istanza di SQL. Questo comando deve essere compresa a fondo prima di eseguirla durante le ore.

Se il DBCC FREEPROCCACHE comando non è stato eseguito dopo l'aggiornamento delle statistiche non aggiornate del database, le query con i piani di esecuzione inefficiente potrebbero trovarsi ancora nella cache e utilizzare. In questo caso, è possibile forzare una ricompilazione della stored procedure specificata utilizzando la stored procedure (cfr. sp_recompile (Transact-SQL)). Ad esempio, vedere la seguente query:
USE SP2013_Content_DBGOsp_recompile proc_getwebnavstruct
Esegue ilsp_recompile comando con parametri di tabella, funzione o procedura destinata a un singolo elemento nella cache per la rimozione senza influenzare l'istanza.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 3103194 - Ultima revisione: 10/10/2015 19:38:00 - Revisione: 1.0

Microsoft SharePoint Server 2013, Microsoft SharePoint Server 2010, Microsoft Office SharePoint Server 2007

  • kbqfe kbsurveynew kbexpertisebeginner kbbug kbfix kbtshoot kbmt KB3103194 KbMtit
Feedback