Condividi tramite


MSSQLSERVER_845

Si applica a:SQL Server

Dettagli

Attributo Valore
Nome prodotto SQL Server
ID evento 845
Origine evento MSSQLSERVER
Componente SQLEngine
Nome simbolico BUFLATCH_TIMEOUT
Testo del messaggio Timeout durante l'attesa di un latch del buffer di tipo %d per la pagina %S_PGID, ID di database %d.

Spiegazione

Un processo era in attesa di acquisire un latch, ma ha attesto fino al tempo limite e non ha potuto acquisirne uno. Ciò può verificarsi se il completamento di un'operazione di I/O richiede una quantità di tempo eccessiva, in genere a causa di un blocco dei processi di sistema determinato da altre attività. In alcuni casi, questo errore potrebbe essere il risultato di un errore hardware.

Causa

Questo messaggio di errore dipende dall'ambiente complessivo del sistema. Una delle circostanze seguenti potrebbe causare un sistema eccessivo:

  • Hardware che non soddisfa le esigenze di input/output (I/O) e memoria
  • Impostazioni configurate e testate in modo non corretto
  • Progettazione inefficiente

È possibile osservare l'errore 845 quando il sistema è sottoposto a un carico elevato e non può soddisfare le richieste del carico di lavoro. Alcune delle cause più comuni di un ambiente sovraccaricato sono:

  • Problemi hardware
  • Volumi compressi
  • Impostazioni di configurazione di SQL Server non predefinite
  • Progettazione inefficiente di query o indice
  • Operazioni frequenti di aumento automatico o riduzione automatica del database

Azione dell'utente

Per evitare che si verifichi questo errore, provare le soluzioni seguenti:

  • Verificare se sono presenti colli di bottiglia dell'hardware. Per un buon punto di partenza, vedere Identificare i colli di bottiglia . Se necessario, aggiornare l'hardware in modo che sia in grado di soddisfare le esigenze di configurazione, query e carico dell'ambiente.

  • Verificare che tutto l'hardware funzioni correttamente. Controllare gli errori registrati ed eseguire tutti gli strumenti di diagnostica offerti dal fornitore dell'hardware. Verificare la presenza di errori di I/O associati nel log degli errori o nel log eventi. Gli errori di I/O in genere sono dovuti a un malfunzionamento del disco.

  • Assicurarsi che i volumi dei dischi non siano compressi. L'archiviazione di file di dati e di log in unità compresse non è supportata. Vedere File di database e filegroup. Per altre informazioni sul supporto delle unità compresse, vedere l'articolo seguente: Descrizione del supporto per i database di SQL Server nei volumi compressi

  • Verificare se i messaggi di errore scompaiono quando si disattivano tutte le opzioni di configurazione di SQL Server seguenti:

  • Ottimizzare le query per ridurre le risorse utilizzate nel sistema. L'ottimizzazione delle prestazioni consente di ridurre lo stress in un sistema e migliorare il tempo di risposta per le singole query.

  • Impostare la proprietà autoshrink su OFF per ridurre il sovraccarico delle modifiche alle dimensioni del database.

  • Assicurarsi di impostare la proprietà autogrow per incrementare le dimensioni sufficienti per essere poco frequenti. Pianificare un processo per controllare lo spazio disponibile nei database e quindi aumentare le dimensioni del database durante le ore di minore attività.

  • Controllare nel log degli errori la presenza di attività che non cedono la precedenza e di altri errori critici. Risolvere prima questi errori, perché potrebbero puntare alla causa radice del problema sottostante.

  • Se si verificano spesso errori critici, come le asserzioni, risolvere questi problemi.

  • Se i messaggi di errore 845 non sono frequenti, è possibile ignorare gli errori.