Compartir a través de


Configuración del servidor: max enviar UCS boxcars

Se aplica a: VERSIÓN PRELIMINAR de SQL Server 2025 (17.x)

Utilice la opción de configuración del servidor max ucs send boxcars para controlar el número máximo de Boxcars UCS que se pueden utilizar para enviar mensajes de la réplica principal a la secundaria. Esta opción es útil para controlar el flujo de datos entre réplicas de un grupo de disponibilidad AlwaysOn a través de una red de área extensa (WAN).

Nota:

La max ucs send boxcars opción de configuración del servidor está disponible a partir de la versión preliminar de SQL Server 2025 (17.x).

Información general

Los grupos de disponibilidad AlwaysOn de SQL Server usan el protocolo servicio de comunicación universal (UCS) para enviar bloques de registro entre réplicas principales y secundarias. UCS determina si la réplica secundaria está retrasada respecto a la réplica principal midiendo el tiempo que tarda la réplica principal en recibir una confirmación de que el cambio ha sido aplicado en la réplica secundaria.

Aunque UCS se comunica entre extremos, entra en control de flujo cuando detecta que la réplica secundaria no puede mantenerse al día con la aplicación de cambios desde la réplica principal. Este proceso funciona bien para redes locales rápidas en las que el retraso de red no es un factor que contribuye, ya que la mayor parte del retraso se atribuye al procesamiento en la réplica secundaria. Sin embargo, cuando UCS se comunica a través de una red de área extensa (WAN) con un retraso de red significativo, como en la replicación geográfica, el aumento de la latencia de red puede hacer que la réplica secundaria se quede atrás. En este escenario, el control de flujo es ineficaz.

Para abordar este escenario de retardo de red, UCS debe aplazar la entrada del control de flujo. Esto se logra al cambiar el límite de la cantidad de UCS boxcars que se pueden utilizar para enviar mensajes desde la réplica principal a la secundaria. Los paquetes UCS se agrupan en un boxcar para permitir una transmisión más eficaz a través de una red. Cuando se aumenta el número máximo de vagones UCS, se pueden transferir más paquetes a la vez, lo que a su vez retrasa la activación del control de flujo.

Reemplazar los vagones del UCS con el Registro de Windows

A partir de SQL Server 2022 (16.x), puede controlar el número de boxcars UCS a través de la creación de un valor del Registro que SQL Server lee durante la inicialización.

  • Clave del Registro: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.<instance_name>\MSSQLServer\ServiceBroker
  • Nombre de valor: MaxPendingSend
  • Tipo de valor: REG_SZ

Importante

Debe crear el valor como REG_SZ y no REG_DWORD, ya que SQL Server comprueba el tipo y omite el valor si no es el tipo esperado.

Este mecanismo tiene varias desventajas:

  • Es posible que los administradores de bases de datos no tengan acceso al Registro, ya sea en la misma máquina que la instancia de SQL Server o de forma remota.

  • Los administradores de bases de datos y los administradores del sistema suelen ser dos roles distintos con distintos conjuntos de responsabilidades y, por tanto, diferentes conjuntos de permisos.

Anulación de los boxcars UCS con sp_configure

A partir de la versión preliminar de SQL Server 2025 (17.x), puede controlar el número de boxcars UCS con la max ucs send boxcars opción de configuración del servidor, con las siguientes consideraciones:

  • Esta configuración es una opción avanzada sp_configure .

  • El valor mínimo es 256 (valor predeterminado) y el valor máximo es 2048. Sin embargo, puede usar un valor de 0 para restablecer el valor al valor predeterminado.

  • Esta opción de configuración tiene prioridad sobre la configuración del Registro.

  • Esta configuración surte efecto después de reiniciar una instancia de SQL Server.

USE master;
GO

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO

EXEC sp_configure `max ucs send boxcars`, 1234;
RECONFIGURE;
GO

Orden de prioridad

En la tabla siguiente se muestran ejemplos de precedencia, en función del mecanismo de invalidación que use.

Regla sp_configure valor Valor del Registro Valor efectivo
max ucs send boxcars los valores que no son predeterminados (es decir, no igual a 256) tienen prioridad sobre los valores del Registro. 1024 2048 1024
Si max ucs send boxcars se establece en su valor predeterminado de 256, el valor del Registro surte efecto. 256 2048 2048
Si max ucs send boxcars se establece en 0, usa el valor predeterminado, que tiene prioridad sobre el valor del registro. De este modo, si los administradores de bases de datos no tienen permiso para editar el registro, todavía pueden aplicar el valor predeterminado. 0 2048 256

Observaciones

Debe ejecutar RECONFIGURE después de establecer la opción de configuración del max ucs send boxcars servidor para aplicar la nueva configuración. La configuración solo surte efecto después de reiniciar la instancia de SQL Server.

Cuando un valor no predeterminado está en vigor para el número de boxcars de UCS, SQL Server registra un mensaje de información en el registro de errores. El mensaje de información contiene el valor efectivo y el origen de anulación: sp_configure o registry.

2024-10-08 13:38:26.11 Server      UCS transport default sending capacity is overridden with the value of 1234. Override source: sp_configure. This is an informational message only. No user action is required.

El código de error interno del mensaje es 33338. El mensaje no se registra si se establece el valor predeterminado.