Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: Förhandsversion av SQL Server 2025 (17.x)
max ucs send boxcars Använd serverkonfigurationsalternativet för att styra det maximala antalet UCS-boxcars som kan användas för att skicka meddelanden från den primära till den sekundära repliken. Det här alternativet är användbart för att styra dataflödet mellan repliker i en AlwaysOn-tillgänglighetsgrupp över ett WAN(Wide-Area Network).
Anmärkning
Serverkonfigurationsalternativet max ucs send boxcars är tillgängligt från och med förhandsversionen av SQL Server 2025 (17.x).
Översikt
UCS-protokollet (Universal Communication Service) används av SQL Server AlwaysOn-tillgänglighetsgrupper för att skicka loggblock mellan primära och sekundära repliker. UCS fastställer om den sekundära repliken ligger bakom den primära repliken genom att mäta den tid det tar för den primära att få en bekräftelse på att ändringen har implementerats på den sekundära repliken.
Medan UCS kommunicerar mellan slutpunkter, anger den flödeskontroll när den upptäcker att den sekundära repliken inte kan hålla jämna steg med att tillämpa ändringar från den primära repliken. Den här processen fungerar bra för snabba lokala nätverk där nätverksfördröjning inte är en bidragande faktor, eftersom den största delen av fördröjningen beror på bearbetning på den sekundära repliken. Men när UCS kommunicerar via ett wan-nätverk (wide-area network) med betydande nätverksfördröjning, till exempel vid geo-replikering, kan den ökade nätverksfördröjningen leda till att den sekundära repliken hamnar på efterkälken. I det här scenariot är flödeskontrollen ineffektiv.
För att hantera det här nätverksfördröjningsscenariot måste UCS skjuta upp inträdandet i flödeskontroll. Detta uppnås genom att ändra gränsen för antalet UCS-boxcars som kan användas för att skicka meddelanden från den primära till den sekundära repliken. UCS-paket grupperas tillsammans i en lådbil för att möjliggöra effektivare överföring via ett nätverk. När du ökar det maximala antalet UCS-boxcars kan fler paket överföras åt gången, vilket i sin tur kan fördröja aktiveringen av flödeskontrollen.
Åsidosätt UCS-boxcars genom Windows-registret
Från och med SQL Server 2022 (16.x) kan du styra antalet UCS-rutor genom att skapa ett registervärde som SQL Server läser under initieringen.
- Registernyckel:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.<instance_name>\MSSQLServer\ServiceBroker - Värdenamn:
MaxPendingSend - Värdetyp:
REG_SZ
Viktigt!
Du måste skapa värdet som REG_SZ och inte REG_DWORD, eftersom SQL Server kontrollerar typen och ignorerar värdet om det inte är den förväntade typen.
Den här mekanismen har flera nackdelar:
Databasadministratörer kanske inte har åtkomst till registret, antingen på samma dator som SQL Server-instansen eller via fjärranslutning.
Databasadministratörer och systemadministratörer är vanligtvis två olika roller med olika ansvarsuppsättningar och därmed olika behörighetsuppsättningar.
Åsidosätt UCS-lådbilar med sp_configure
Från och med SQL Server 2025 (17.x) Preview kan du styra antalet UCS-boxcars med max ucs send boxcars serverkonfigurationsalternativet med följande överväganden:
Den här inställningen är ett avancerat
sp_configurealternativ.Det minsta värdet är
256(standardvärdet) och det maximala värdet är2048. Du kan dock använda värdet0för för att återställa värdet till standardvärdet.Det här konfigurationsalternativet har företräde framför registerinställningen.
Den här inställningen börjar gälla efter att en SQL Server-instans har startats om.
USE master;
GO
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure `max ucs send boxcars`, 1234;
RECONFIGURE;
GO
Prioritetsordning
I följande tabell visas exempel på prioritet, beroende på vilken åsidosättningsmekanism du använder.
| Regel |
sp_configure värde |
Registervärde | Effektivt värde |
|---|---|---|---|
max ucs send boxcars värden som inte är standardvärden (dvs. inte lika med 256) har företräde framför registervärdena. |
1024 | 2048 | 1024 |
Om max ucs send boxcars är inställt på standardvärdet 256 börjar registervärdet gälla. |
256 | 2048 | 2048 |
Om max ucs send boxcars är inställt på 0använder den standardvärdet, som har företräde framför registervärdet. På så sätt kan databasadministratörerna fortfarande använda standardvärdet om databasadministratörerna inte har behörighet att redigera registret. |
0 | 2048 | 256 |
Anmärkningar
Du måste köra RECONFIGURE när du har angett max ucs send boxcars serverkonfigurationsalternativet för att tillämpa den nya konfigurationen. Inställningen börjar gälla först när SQL Server-instansen har startats om.
När ett icke-standardvärde gäller för antalet UCS-boxcars loggar SQL Server ett informationsmeddelande i felloggen. Informationsmeddelandet innehåller det effektiva värdet och åsidosättningskällan: sp_configure eller 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.
Den interna felkoden för meddelandet är 33338. Meddelandet loggas inte om standardvärdet har angetts.