Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: SQL Server 2025 (17.x)
Use a opção de configuração do servidor max ucs send boxcars para controlar o número máximo de boxcars UCS que podem ser utilizados para enviar mensagens da réplica primária para a réplica secundária. Essa opção é útil para controlar o fluxo de dados entre réplicas em um grupo de disponibilidade Always On em uma rede de longa distância (WAN).
Observação
A max ucs send boxcars opção de configuração do servidor está disponível a partir do SQL Server 2025 (17.x).
Visão geral
O protocolo UCS (Serviço de Comunicação Universal) é usado por grupos de disponibilidade Always On do SQL Server para enviar blocos de log entre réplicas primárias e secundárias. O UCS determina se a réplica secundária fica atrás da réplica primária medindo o tempo que leva para a primária receber uma confirmação de que a alteração foi reforçada na secundária.
Embora o UCS se comunique entre os pontos de extremidade, ele entra no controle de fluxo quando deteta que a réplica secundária não consegue acompanhar a aplicação de alterações da réplica primária. Esse processo funciona bem para redes locais rápidas, onde o atraso da rede não é um fator contribuinte, já que a maior parte do atraso é atribuída ao processamento na réplica secundária. No entanto, quando o UCS se comunica por meio de uma rede de longa distância (WAN) com atraso de rede significativo, como na replicação geográfica, o aumento da latência da rede pode fazer com que a réplica secundária fique para trás. Nesse cenário, o controle de fluxo é ineficiente.
Para resolver esse cenário de atraso de rede, o UCS precisa adiar o controle de fluxo de entrada. Isso é conseguido alterando o limite do número de vagões UCS que podem ser utilizados para enviar mensagens da réplica primária para a réplica secundária. Os pacotes UCS são agrupados em um boxcar para permitir uma transmissão mais eficiente através de uma rede. Quando se aumenta o número máximo de boxcars UCS, mais pacotes podem ser transferidos de cada vez, o que, por sua vez, adia a execução do controlo de fluxo.
Substituir componentes UCS com o registo do Windows
A partir do SQL Server 2022 (16.x), poderá controlar o número de boxcars UCS através da criação de um valor de registo que o SQL Server lê durante a inicialização.
- Chave do registo:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.<instance_name>\MSSQLServer\ServiceBroker - Nome do valor:
MaxPendingSend - Tipo de valor:
REG_SZ
Importante
Você deve criar o valor como REG_SZ e não REG_DWORD, porque o SQL Server verifica o tipo e ignora o valor se ele não for o tipo esperado.
Este mecanismo tem várias desvantagens:
Os administradores de banco de dados podem não ter acesso ao Registro, na mesma máquina que a instância do SQL Server ou remotamente.
Administradores de banco de dados e administradores de sistema geralmente são duas funções distintas com diferentes conjuntos de responsabilidades e, portanto, diferentes conjuntos de permissões.
Substitua os boxcars UCS por sp_configure
A partir do SQL Server 2025 (17.x), pode controlar o número de vagões UCS com a max ucs send boxcars opção de configuração do servidor, com as seguintes considerações:
Essa configuração é uma opção avançada
sp_configure.O valor mínimo é
256(o padrão) e o valor máximo é2048. No entanto, você pode usar um valor de0para redefinir o valor para padrão.Essa opção de configuração tem precedência sobre a configuração do Registro.
Essa configuração entra em vigor após a reinicialização de uma instância do SQL Server.
USE master;
GO
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure `max ucs send boxcars`, 1234;
RECONFIGURE;
GO
Ordem de precedência
A tabela a seguir mostra exemplos de precedência, dependendo do mecanismo de substituição usado.
| Regra |
sp_configure valor |
Valor de registo | Valor efetivo |
|---|---|---|---|
max ucs send boxcars Os valores que não são padrão (ou seja, não são iguais a 256) têm precedência sobre os valores do Registro. |
1024 | 2048 | 1024 |
Se max ucs send boxcars for definido como seu valor padrão de 256, o valor do Registro entrará em vigor. |
256 | 2048 | 2048 |
Se max ucs send boxcars estiver definido como 0, ele usará o valor padrão, que tem precedência sobre o valor do Registro. Dessa forma, se os administradores de banco de dados não tiverem permissão para editar o registro, eles ainda poderão aplicar o valor padrão. |
0 | 2048 | 256 |
Observações
Você deve executar RECONFIGURE depois de definir a opção de configuração do max ucs send boxcars servidor para aplicar a nova configuração. A configuração só entra em vigor depois de reiniciar a instância do SQL Server.
Quando um valor não padrão está em vigor para o número de vagões UCS, o SQL Server registra uma mensagem de informação no log de erros. A mensagem informativa contém o valor efetivo e a origem da substituição: sp_configure ou 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.
O código de erro interno da mensagem é 33338. A mensagem não será registrada se o valor padrão estiver definido.
Conteúdo relacionado
- Opções de configuração do Server
- Monitor and troubleshoot availability groups (Monitorizar e resolver problemas de grupos de disponibilidade)
- Adicionar uma réplica secundária a um grupo de disponibilidade Always On