Il file di log delle transazioni cresce per i database con In-Memory OLTP in SQL Server 2022
Sintomi
Quando nei database è abilitata la funzionalità OLTP in memoriain SQL Server 2022, si nota che il file di log delle transazioni cresce continuamente. Inoltre, il log degli errori SQL Server potrebbe avere messaggi come Close thread is falling behind: 4 checkpoints outstanding
.
Se si riavvia l'istanza di SQL Server, è possibile che il database richieda molto tempo per completare il processo di ripristino del database.
Risolvere il problema con sys.databases e sys.dm_db_xtp_checkpoint_stats
Quando si usa la vista catalogo sys.databases per raccogliere informazioni e risolvere questo problema, la colonna
log_reuse_wait_desc
indicaXTP_CHECKPOINT
come motivo del troncamento lungo. Questo valore indica che il log delle transazioni è in attesa di un checkpoint OLTP (precedentemente noto come Hekaton) In-Memory. Suggerisce un ritardo nelle operazioni di checkpoint, potenzialmente influendo sulle prestazioni o sulla crescita dei file di log.Quando si usa la sys.dm_db_xtp_checkpoint_stats DMV (Dynamic Management View) SQL Server per raccogliere informazioni e risolvere questo problema, nella colonna
outstanding_checkpoint_count
viene visualizzato un valore diverso da zero per un periodo di tempo prolungato. Indica che i checkpoint non si verificano in modo efficiente e potenzialmente influiscono sulle prestazioni e sulla crescita dei file di log.
Causa
SQL Server 2022 ha introdotto nuove funzionalità che migliorano la gestione della memoria in server di memoria di grandi dimensioni per ridurre le condizioni di memoria insufficiente. Un problema noto in questa modifica può talvolta causare il comportamento descritto nella sezione Sintomi .
Risoluzione
Per risolvere il problema, seguire questa procedura:
- Aggiungere -T9810 come parametro di avvio per l'istanza di SQL Server.
- Riavviare l'istanza di .
- Eseguire un checkpoint, eseguire un backup del log, osservare
log_reuse_wait_desc
e compattare il log se necessario per recuperare spazio.
Ulteriori informazioni
Il flag di traccia 9810 disabilita il motore OLTP In-Memory dal recupero della memoria TLS (Thread Local Storage), ripristinando il comportamento di SQL Server 2019.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per