Compartir a través de


Configuración del servidor: factor de asignación previa de ADR

Se aplica a: SQL Server

A partir de SQL Server 2019 (15.x), esta configuración es necesaria para la recuperación acelerada de bases de datos.

La recuperación acelerada de base de datos (ADR) mantiene varias versiones de los datos con fines de recuperación. Estas versiones se generan como parte de varias operaciones del lenguaje de manipulación de datos (DML). Las versiones se almacenan en una tabla interna denominada almacén de versiones persistente (PVS).

Observaciones

El rendimiento puede disminuir si se asignan páginas a PVS como parte de las operaciones del DML del usuario en primer plano. Un subproceso en segundo plano asigna previamente las páginas y las mantiene disponibles para las transacciones del DML. El rendimiento es mejor cuando el subproceso en segundo plano asigna previamente suficientes páginas y el porcentaje de asignaciones de PVS en primer plano se aproxima a 0. El registro de errores contiene entradas con la etiqueta PreallocatePVS si el porcentaje es alto y está afectando al rendimiento.

El número de páginas que el subproceso en segundo plano asigna previamente depende de varias heurísticas de carga de trabajo, pero en gran medida asigna páginas en fragmentos de 512 páginas. El factor de asignación previa de ADR es un múltiplo del fragmento. De forma predeterminada, el factor es 4, lo que significa que preasigna 2048 páginas a la vez cuando sea necesario.

Aunque el subproceso en segundo plano toma en consideración los patrones de carga de trabajo, este factor se puede aumentar si es necesario para mejorar el rendimiento.

Precaución

Si la asignación previa de PVS aumenta demasiado, competirá con otras asignaciones del sistema, lo que podría reducir el rendimiento general. Antes de modificar este valor, pruebe el rendimiento general del sistema.

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 en 4, que es el valor predeterminado diseñado, siguiendo el ejemplo de este artículo.

Ejemplos

En el ejemplo siguiente se establece el factor de asignación previa en 4.

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'ADR Preallocation Factor', 4;
RECONFIGURE;
GO