Compartir vía


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