Compartir a través de


El archivo de registro de transacciones crece para las bases de datos con OLTP en memoria en SQL Server 2022

Síntomas

Cuando las bases de datos tienen habilitada la característica OLTP en memoria en SQL Server 2022, verá que el archivo de registro de transacciones crece continuamente. Además, el registro de errores de SQL Server podría tener mensajes como Close thread is falling behind: 4 checkpoints outstanding.

Si reinicia la instancia de SQL Server, es posible que observe que la base de datos tarda mucho tiempo en completar el proceso de recuperación de la base de datos.

Solución del problema con sys.databases y sys.dm_db_xtp_checkpoint_stats

  • Cuando se usa la vista de catálogo sys.databases para recopilar información y solucionar este problema, la columna log_reuse_wait_desc se muestra XTP_CHECKPOINT como el motivo del truncamiento largo. Este valor indica que el registro de transacciones está esperando que se produzca un punto de comprobación OLTP en memoria (anteriormente conocido como Hekaton). Sugiere un retraso en las operaciones de punto de comprobación, lo que podría afectar al rendimiento o al crecimiento del archivo de registro.

  • Cuando se usa la vista de administración dinámica (DMV) de SQL Server sys.dm_db_xtp_checkpoint_stats para recopilar información y solucionar este problema, la columna outstanding_checkpoint_count muestra un valor distinto de cero durante un período de tiempo prolongado. Indica que los puntos de control no se producen de forma eficaz, lo que podría afectar al rendimiento y al crecimiento del archivo de registro.

Causa

SQL Server 2022 introdujo nuevas funcionalidades que mejoran la administración de memoria en servidores de memoria grandes para reducir las condiciones fuera de memoria. Un problema conocido en este cambio a veces puede provocar el comportamiento descrito en la sección Síntomas .

Solución

Para resolver el problema, siga estos pasos:

  1. Agregue -T9810 como parámetro de inicio para la instancia de SQL Server.
  2. Reinicie la instancia.
  3. Emita un punto de control, realice una copia de seguridad del registro, observe log_reuse_wait_descy reduzca el registro si es necesario para recuperar espacio.

Nota

Este problema se ha corregido en la actualización acumulativa 7 para SQL Server 2022.

Más información

La marca de seguimiento 9810 deshabilita el motor OLTP en memoria para reclamar memoria de almacenamiento local de subprocesos (TLS), revirtiendo al comportamiento de SQL Server 2019.