Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Sintomi
Quando nei database è abilitata la funzionalità In-Memory OLTP in SQL Server 2022, si nota che il file di log delle transazioni aumenta continuamente. Inoltre, il log degli errori di SQL Server potrebbe contenere messaggi come Close thread is falling behind: 4 checkpoints outstanding.
Se si riavvia l'istanza di SQL Server, è possibile notare che il database richiede molto tempo per completare il processo di ripristino del database.
Risolvere il problema relativo a sys.databases e sys.dm_db_xtp_checkpoint_stats
Quando si usa la vista del catalogo sys.databases per raccogliere informazioni e risolvere questo problema, la colonna
log_reuse_wait_descmostraXTP_CHECKPOINTcome motivo del troncamento lungo. Questo valore indica che il log delle transazioni è in attesa che si verifichi un checkpoint OLTP in memoria (in precedenza noto come Hekaton). Suggerisce un ritardo nelle operazioni di checkpoint, che potenzialmente influisce sulle prestazioni o sulla crescita dei file di log.Quando si usa la DMV (Dynamic Management View) di SQL Server sys.dm_db_xtp_checkpoint_stats per raccogliere informazioni e diagnosticare il problema, nella colonna
outstanding_checkpoint_countviene visualizzato un valore diverso da zero per un periodo di tempo prolungato. Indica che i checkpoint non si verificano in modo efficiente, con potenziali effetti sulle prestazioni e sull'aumento dei file di log.
Causa
SQL Server 2022 ha introdotto nuove funzionalità che migliorano la gestione della memoria nei server con grandi quantità di memoria per ridurre le condizioni di memoria insufficiente. Un problema noto in questa modifica può talvolta portare al comportamento descritto nella sezione Sintomi .
Risoluzione
Per risolvere il problema, seguire questi passaggi:
- Aggiungere -T9810 come parametro di avvio per l'istanza di SQL Server.
- Riavvia l'istanza.
- Eseguire un checkpoint, eseguire un backup del log, osservare
log_reuse_wait_desce, se necessario, ridurre il log per recuperare spazio.
Nota
Questo problema è stato risolto nell'aggiornamento cumulativo 7 per SQL Server 2022.
Ulteriori informazioni
Il flag di traccia 9810 impedisce al motore OLTP in memoria di recuperare la memoria TLS (Thread Local Storage), ripristinando il comportamento di SQL Server 2019.