Sdílet prostřednictvím


Konfigurace serveru: max ucs send boxcars

Platí pro: SQL Server 2025 (17.x)

max ucs send boxcars Pomocí možnosti konfigurace serveru můžete řídit maximální počet boxcarů UCS, které lze použít k odesílání zpráv z primární do sekundární repliky. Tato možnost je užitečná pro řízení toku dat mezi replikami ve skupině dostupnosti AlwaysOn přes síť WAN (Wide Area Network).

Poznámka:

Možnost max ucs send boxcars konfigurace serveru je dostupná od SQL Serveru 2025 (17.x).

Přehled

Protokol UCS (Universal Communication Service) používá skupiny dostupnosti AlwaysOn SQL Serveru k odesílání bloků protokolů mezi primárními a sekundárními replikami. UCS určuje, zda sekundární replika zaostává za primární replikou tím, že měří čas potřebný k tomu, aby primární replika obdržela potvrzení, že změna byla zažehnána na sekundární replice.

Zatímco UCS komunikuje mezi koncovými body, přejde do řízení toku, když zjistí, že sekundární replika nemůže držet krok s aplikováním změn z primární repliky. Tento proces funguje dobře pro rychlé místní sítě, kde prodleva sítě není faktorem, který přispívá, protože většina zpoždění je přiřazena ke zpracování na sekundární replice. Když však UCS komunikuje přes širokopásmovou síť (WAN) s výraznou prodlevou, jako je tomu při geografické replikaci, zvýšená latence sítě může způsobit, že sekundární replika se opožďuje. V tomto scénáři je řízení toku neefektivní.

Aby bylo možné tento scénář prodlevy sítě vyřešit, musí UCS odložit přechod do řízení toku. Toho je dosaženo změnou limitu na počet boxcarů UCS, které lze použít k odesílání zpráv z primární repliky na sekundární repliku. Pakety UCS jsou seskupené do boxcaru, aby bylo možné efektivnější přenos přes síť. Když zvýšíte maximální počet UCS vagónů, může být současně přeneseno více paketů, což zase oddaluje vstup do řízení toku.

Přepsání boxcars UCS pomocí registru Windows

Počínaje SQL Serverem 2022 (16.x) můžete řídit počet boxcarů UCS vytvořením hodnoty registru, kterou SQL Server přečte během inicializace.

  • Klíč registru: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.<instance_name>\MSSQLServer\ServiceBroker
  • Název hodnoty: MaxPendingSend
  • Typ hodnoty: REG_SZ

Důležité

Hodnotu musíte vytvořit jako REG_SZ a ne REG_DWORD, protože SQL Server zkontroluje typ a ignoruje hodnotu, pokud není očekávaným typem.

Tento mechanismus má několik nevýhod:

  • Správci databází nemusí mít přístup k registru, a to buď na stejném počítači jako instance SQL Serveru, nebo vzdáleně.

  • Správci databází a správci systému jsou obvykle dvě různé role s různými sadami zodpovědností, a proto různé sady oprávnění.

Přepsání UCS boxcars pomocí sp_configure

Počínaje SQL Serverem 2025 (17.x) můžete řídit počet UCS boxcarů pomocí konfigurační volby serveru max ucs send boxcars s ohledem na následující úvahy:

  • Toto nastavení je pokročilá sp_configure možnost.

  • Minimální hodnota je 256 (výchozí) a maximální hodnota je 2048. Výchozí hodnotu však můžete resetovat použitím hodnoty 0.

  • Tato možnost konfigurace má přednost před nastavením registru.

  • Toto nastavení se projeví po restartování instance SQL Serveru.

USE master;
GO

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

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

Pořadí priorit

Následující tabulka uvádí příklady přednosti v závislosti na tom, který mechanismus přepsání použijete.

Pravidlo sp_configure hodnota Hodnota registru Skutečná hodnota
max ucs send boxcars hodnoty, které nejsou výchozí (tj. nerovnají se 256), mají přednost před hodnotami registru. 1024 2048 1024
Pokud max ucs send boxcars je nastavena na výchozí hodnotu 256, hodnota registru se projeví. 256 2048 2048
Pokud max ucs send boxcars je nastavena na 0, používá výchozí hodnotu, která má přednost před hodnotou registru. Pokud správci databáze nemají oprávnění k úpravám registru, můžou přesto použít výchozí hodnotu. 0 2048 256

Poznámky

Po nastavení RECONFIGURE možnosti konfigurace serveru je nutné spustitmax ucs send boxcars, aby se nová konfigurace použila. Nastavení se projeví až po restartování instance SQL Serveru.

Pokud je použita nestandardní hodnota pro počet boxcarů UCS, SQL Server uloží informační zprávu do protokolu chyb. Informační zpráva obsahuje platnou hodnotu a zdroj přepsání: sp_configure nebo 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.

Vnitřní kód chyby zprávy je 33338. Pokud je nastavená výchozí hodnota, zpráva se nezaprotokoluje.