Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этой статье содержатся важные шаги по оптимизации производительности исходной базы данных и зеркальной базы данных из SQL Server в Microsoft Fabric.
Управление производительностью сканирования
При включении зеркального отображения в таблицах в базе данных процесс сканирования периодически фиксирует изменения путем сбора журнала транзакций. Этот процесс начинается с LSN самой старой нереплицированной зафиксированной транзакции и сканирует следующие N-1 реплицированных транзакций, где N — это количество транзакций, указанных с помощью параметра @maxtrans в sys.sp_change_feed_configure_parameters. Значение maxtrans параметра указывает максимальное количество транзакций для обработки в каждом цикле сканирования.
В ситуациях, когда задержка сканирования очень высока, использование более maxtrans высокого значения может быть выгодно, в то время как в случаях с разреженной репликацией или относительно большими транзакциями более низкий maxtrans параметр может быть предпочтительнее. Функция динамических максимальных транзакций упрощает этот процесс, автоматически определяя оптимальное maxtrans значение во время каждой проверки на основе других факторов, таких как использование журнала, задержка сканирования и рабочая нагрузка. Если настройка Change Feed включена, Fabric динамически регулирует параметр maxtrans, обеспечивая оптимальную производительность сканирования.
Проверьте параметр функции динамического максимального количества транзакций с sys.sp_help_change_feed_settings или используйте расширенные события для мониторинга значений времени выполнения для каждого сканирования.
Чтобы включить функцию динамических максимальных транзакций, установите значение @dynamicmaxtrans1. Рассмотрим пример.
USE <Mirrored database name>
GO
EXECUTE sys.sp_change_feed_configure_parameters
@dynamicmaxtrans=1;
Чтобы изменить максимальные и нижние границы для функции динамических максимальных транзакций, используйте @maxtrans и @dynamicmaxtranslowerbound соответственно. Рассмотрим пример.
USE <Mirrored database name>
GO
EXECUTE sys.sp_change_feed_configure_parameters
@dynamicmaxtrans=1
, @dynamicmaxtranslowerbound=5
, @maxtrans=5000;
Рекомендации по настройке динамических максимальных транзакций
Функция динамических максимальных транзакций включена по умолчанию в SQL Server 2025. Функция динамических максимальных транзакций включена и не может быть управляемой или отключенной в Базе данных SQL Azure и Управляемом экземпляре SQL Azure.
Если включен динамический maxtrans, зеркальное отображение обрабатывает до 10 000 транзакций (по умолчанию) или настроенное максимальное значение транзакций на этапе сканирования журнала. Чтобы предотвратить выполнение этого этапа слишком долго, применяется трехминутное время ожидания. Все транзакции, обработанные до истечения срока ожидания, публикуются в зеркальной базе данных, а остальные транзакции будут записаны во время следующей проверки.
Оптимальные значения функции динамических максимальных транзакций зависят от рабочей нагрузки, задержки и других факторов. Рекомендуется включить функцию dynamic maxtrans, если задержка выше желаемой, а transaction_count в каждом пакете превышает значение нижней границы (по умолчанию — 200). Это можно отслеживать с помощью столбца latency в sys.dm_change_feed_log_scan_sessions или с помощью расширенного события repl_logscan_dynamic_maxtrans, чтобы увидеть, достигается ли установленный current_maxtransmaxtrans. Если задержка по-прежнему высока, попробуйте увеличить верхний maxtrans предел с помощью sys.sp_help_change_feed_settings.
Используйте расширенное событие repl_logscan_dynamic_maxtrans, чтобы отслеживать частые тайм-ауты. Поле prev_phase2_scan_termination_reason будет иметь значение LogScanTerminationReason_MaxScanDurationReached, когда происходит тайм-аут сканирования. Попробуйте уменьшить maxtrans или отключить динамический maxtrans с помощью sys.sp_help_change_feed_settings, если вы заметите частые тайм-ауты.
Управление ресурсами для зеркалирования SQL Server
В SQL Server 2025 можно создать пул регулятора ресурсов для управления и ограничения рабочей нагрузки зеркального отображения Fabric на SQL Server. Регулятор ресурсов можно использовать для управления потреблением ресурсов ядра СУБД и применением политик для рабочих нагрузок пользователей. Регулятор ресурсов позволяет зарезервировать или ограничить различные ресурсы сервера, включая объем ЦП, памяти и физических операций ввода-вывода, которые могут использовать рабочие нагрузки запросов пользователей. Таким образом, вы можете защитить основные бизнес-рабочие нагрузки от давления, возникающего из-за сбора данных канала изменений Зеркалирования Fabric. Дополнительные сведения см. в разделе "Регулятор ресурсов".
Чтобы приступить к настройке групп рабочих нагрузок в SQL Server 2025 для зеркального отображения Fabric, используйте следующий пример скрипта и инструкции.
- Вы можете выбрать любое имя для
RESOURCE POOLэлемента . - Этот пример скрипта настраивает ограничение для требуемого процента ЦП, чтобы разрешить зеркальное отображение Fabric. В следующем примере используется
50для 50 процентов. Это значение представляет максимальную среднюю пропускную способность процессора, которую могут получать все запросы в пуле ресурсов при нагрузке на процессор. Используйте более низкое значение для дальнейшего ограничения зеркального отображения Fabric. - Имена
WORKLOAD GROUPдолжны соответствовать значениям в примере скрипта. Каждая группа рабочей нагрузки предназначена для определенного этапа зеркального отображения. Каждая группа рабочей нагрузки может находиться в одном или другом пуле в зависимости от того, как вы планируете пулы и рабочие нагрузки регулятора ресурсов. - Прежде чем настраивать регулятор ресурсов в первый раз в экземпляре SQL Server, внимательно просмотрите документацию по регулятору ресурсов, примеры и рекомендации.
--Create resource pool for Fabric mirroring
CREATE RESOURCE POOL [ChangeFeedPool] WITH (MAX_CPU_PERCENT = 50);
--Create workload groups for Fabric mirroring. Do not modify.
CREATE WORKLOAD GROUP [x_ms_reserved_changefeed_snapshot_group] USING [ChangeFeedPool];
CREATE WORKLOAD GROUP [x_ms_reserved_changefeed_capture_group] USING [ChangeFeedPool];
CREATE WORKLOAD GROUP [x_ms_reserved_changefeed_publish_group] USING [ChangeFeedPool];
CREATE WORKLOAD GROUP [x_ms_reserved_changefeed_commit_group] USING [ChangeFeedPool];
CREATE WORKLOAD GROUP [x_ms_reserved_changefeed_notification_group] USING [ChangeFeedPool];
Чтобы применить изменения и включить регулятор ресурсов, как обычно:
ALTER RESOURCE GOVERNOR RECONFIGURE