Configuración del servidor: tiempo de reintento del limpiador de ADR (en minutos)
Se aplica a:SQL Server
A partir de SQL Server 2019 (15.x), esta configuración se usa para de recuperación acelerada de bases de datos (ADR). El limpiador es un proceso asincrónico que se reactiva periódicamente y limpia las versiones de página que no son necesarias.
En ocasiones, el limpiador podría encontrarse con problemas al adquirir bloqueos de nivel de objeto debido a conflictos con cargas de trabajo de usuario durante su barrido. El limpiador realiza un seguimiento de estas páginas en una lista independiente. ADR cleaner retry timeout (min)
controla la cantidad de tiempo que el limpiador dedica exclusivamente a reintentar la adquisición de bloqueos de objetos y la limpieza de páginas antes de abandonar el barrido. Completar el proceso con un éxito del 100% es esencial para limitar el crecimiento de las transacciones anuladas en su correspondiente mapa. Si las páginas de la lista independiente no se pueden limpiar en el tiempo de espera prescrito, se abandona el barrido actual y se intenta limpiar durante el siguiente barrido.
Versión | Valor predeterminado |
---|---|
SQL Server 2019 (15.x) | 120 |
SQL Server 2022 (16.x) y versiones posteriores | 15 |
Observaciones
El limpiador es de un solo subproceso en SQL Server 2019 (15.x). En SQL Server 2022 (16.x), el limpiador es de un solo subproceso de forma predeterminada, pero se puede convertir en multiproceso configurando la configuración del servidor ADR Cleaner Thread Count
.
Si el limpiador es de un solo hilo, solo puede trabajar en una base de datos a la vez. Si la instancia tiene más de una base de datos con ADR habilitado, no aumente el tiempo de espera a un valor grande. ya que podría retrasar la limpieza en una base de datos mientras se produce el reintento en otra.
Problema conocido
En SQL Server 2019 (15.x) CU 12 y en las versiones anteriores, este valor puede estar establecido en 0
. Se recomienda restablecerlo manualmente en 120
, que es el valor predeterminado diseñado, siguiendo el ejemplo de este artículo.
Ejemplos
En el siguiente ejemplo se establece el tiempo de espera de reintento del limpiador en el valor predeterminado.
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'ADR cleaner retry timeout', 120;
RECONFIGURE;
GO
Ejemplos
En el siguiente ejemplo se establece el tiempo de espera de reintento del limpiador en el valor predeterminado.
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'ADR cleaner retry timeout', 15;
RECONFIGURE;
GO