Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: Предварительная версия SQL Server 2025 (17.x)
max ucs send boxcars
Используйте параметр конфигурации сервера для управления максимальным количеством UCS boxcars, которые можно использовать для отправки сообщений из первичной реплики в вторичную реплику. Этот параметр полезен для управления потоком данных между репликами в группе доступности AlwaysOn по всей сети (WAN).
Замечание
Параметр max ucs send boxcars
конфигурации сервера доступен начиная с предварительной версии SQL Server 2025 (17.x).
Обзор
Протокол универсальной службы коммуникации (UCS) используется группами доступности SQL Server AlwaysOn для отправки блоков журналов между основными и вторичными репликами. UCS определяет, отстает ли вторичная реплика от основной реплики, измеряя время, необходимое для первичного получения подтверждения о том, что изменение было закреплено на вторичной.
Хотя UCS взаимодействует между конечными точками, он вводит управление потоком при обнаружении того, что вторичная реплика не может поддерживать применение изменений из первичной реплики. Процесс хорошо подходит для быстрых локальных сетей, где задержка сети не играет существенной роли, поскольку основная часть задержки связана с обработкой на вторичной реплике. Тем не менее, когда UCS взаимодействует через глобальную сеть с значительной задержкой, например, в георепликации, увеличение сетевой задержки может привести к отставанию вторичной реплики. В этом сценарии управление потоком неэффективно.
Чтобы устранить этот сценарий задержки сети, UCS необходимо отложить включение управления потоками. Это достигается путем изменения ограничения количества UCS boxcars, которые можно использовать для отправки сообщений из первичной во вторичную реплику. Пакеты UCS группируются в коробке, чтобы обеспечить более эффективную передачу по сети. При увеличении максимального числа UCS boxcars можно передавать больше пакетов за раз, что, в свою очередь, отсрочивает включение управления потоком.
Переопределение UCS boxcars с помощью реестра Windows
Начиная с SQL Server 2022 (16.x), вы можете управлять количеством UCS boxcars путем создания значения реестра, которое SQL Server считывает во время инициализации.
- Раздел реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.<instance_name>\MSSQLServer\ServiceBroker
- Имя значения:
MaxPendingSend
- Тип значения:
REG_SZ
Это важно
Необходимо задать значение в формате REG_SZ
, а не REG_DWORD
, так как SQL Server проверяет тип и игнорирует значение, если оно не того типа, который ожидается.
Этот механизм имеет несколько недостатков:
Администраторы базы данных могут не иметь доступа к реестру на том же компьютере, что и экземпляр SQL Server, или удаленно.
Администраторы баз данных и системные администраторы обычно являются двумя разными ролями с разными наборами обязанностей и, следовательно, различными наборами разрешений.
Переопределить UCS boxcars используя sp_configure
Начиная с предварительного просмотра SQL Server 2025 (17.x), вы можете управлять количеством UCS boxcars с параметром max ucs send boxcars
конфигурации сервера, учитывая следующие соображения:
Этот параметр является дополнительным
sp_configure
параметром.Минимальное значение —
256
(значение по умолчанию), а максимальное —2048
. Однако можно использовать значение0
, чтобы сбросить его по умолчанию.Этот параметр конфигурации имеет приоритет над параметром реестра.
Этот параметр действует после перезапуска экземпляра SQL Server.
USE master;
GO
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure `max ucs send boxcars`, 1234;
RECONFIGURE;
GO
Порядок приоритета
В следующей таблице показаны примеры приоритета в зависимости от используемого механизма переопределения.
Правило | Значение sp_configure |
Значение реестра | Эффективное значение |
---|---|---|---|
max ucs send boxcars Значения, не являющиеся значениями по умолчанию (т. е. не равными 256), имеют приоритет над значениями реестра. |
1024 | 2048 | 1024 |
Если max ucs send boxcars задано значение по умолчанию 256, значение реестра вступает в силу. |
256 | 2048 | 2048 |
Если max ucs send boxcars задано значение 0 , оно использует значение по умолчанию, которое имеет приоритет над значением реестра. Таким образом, если администраторы базы данных не имеют разрешения на изменение реестра, они по-прежнему могут применить значение по умолчанию. |
0 | 2048 | 256 |
Замечания
Необходимо выполнить RECONFIGURE
после установки max ucs send boxcars
параметра конфигурации сервера, чтобы применить новую конфигурацию. Параметр действует только после перезапуска экземпляра SQL Server.
Если используется нестандартное значение для числа UCS boxcars, SQL Server регистрирует информационное сообщение в журнал ошибок. Информационное сообщение содержит эффективное значение и источник переопределения: sp_configure
или 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.
Внутренний код ошибки для сообщения 33338
. Сообщение не регистрируется, если задано значение по умолчанию.