Del via


Optimer ydeevnen for spejlede databaser fra SQL Server

Denne artikel indeholder vigtige trin til at optimere ydeevnen af kildedatabasen og den spejlede database fra SQL Server i Microsoft Fabric.

Kontrollér scanningens ydeevne

Når spejling er aktiveret på tabeller i en database, registrerer en scanningsproces med jævne mellemrum ændringer ved at høste transaktionsloggen. Denne proces begynder ved LSN for den ældste ikke-replikerede forpligtede transaktion og scanner de næste N-1-replikerede transaktioner, hvor N repræsenterer antallet af transaktioner, der er angivet ved hjælp af parameteren @maxtrans i sys.sp_change_feed_configure_parameters. Parameterværdien maxtrans angiver det maksimale antal transaktioner, der skal behandles i hver scanningscyklus.

I situationer, hvor scanningsventetiden er meget høj, kan det være en fordel at bruge en højere maxtrans værdi, mens en lavere maxtrans indstilling kan være at foretrække i tilfælde, der involverer sparsomt replikerede eller relativt store transaktioner. Funktionen dynamiske maksimale transaktioner strømliner denne proces ved automatisk at bestemme den optimale maxtrans værdi under hver scanning baseret på andre faktorer som f.eks. logforbrug, scanningsforsinkelse og arbejdsbelastning. Når dynamicmaxtrans indstillingen for ændring af fremføring er aktiveret, justerer Fabric dynamisk parameteren maxtrans, hvilket sikrer optimal scanningsydelse.

Kontrollér indstillingen af funktionen Dynamisk maks. antal transaktioner med sys.sp_help_change_feed_settings, eller brug repl_logscan_dynamic_maxtrans udvidet hændelse til at overvåge kørselsværdierne for hver scanning.

Hvis du vil aktivere funktionen dynamisk maks. antal posteringer, skal du angive @dynamicmaxtrans til 1. Det kan f.eks. være:

USE <Mirrored database name>
GO
EXECUTE sys.sp_change_feed_configure_parameters
  @dynamicmaxtrans=1;

Hvis du vil ændre maksimum- og nedre grænser for funktionen dynamisk maksimalt antal transaktioner, skal du bruge @maxtrans henholdsvis og @dynamicmaxtranslowerbound . Det kan f.eks. være:

USE <Mirrored database name>
GO
EXECUTE sys.sp_change_feed_configure_parameters
  @dynamicmaxtrans=1
, @dynamicmaxtranslowerbound=5
, @maxtrans=5000;

Overvejelser i forbindelse med indstillingen for dynamisk maksimum for transaktioner

Funktionen for dynamiske maksimale transaktioner er aktiveret som standard i SQL Server 2025. Funktionen til dynamisk maks. antal transaktioner er aktiveret og kan ikke administreres eller deaktiveres i Azure SQL Database og Azure SQL Managed Instance.

Når dynamisk maxtrans er aktiveret, behandler spejling op til 10.000 transaktioner (som standard) eller den konfigurerede maksimale transaktionsværdi under logscanningsfasen. For at forhindre, at denne fase varer for længe, håndhæves en timeout på tre minutter. Alle transaktioner, der behandles, før timeouten udløber, publiceres i den spejlede database, og resterende transaktioner registreres under den næste scanning.

De optimale værdier for funktionen dynamisk maks. antal transaktioner varierer efter arbejdsbelastning, ventetid og andre faktorer. Overvej at aktivere den dynamiske maxtrans-funktion, når latenstiden er højere end ønsket og transaction_count i hver batch er større end den nedre grænseindstilling (200 som standard). Dette kan overvåges ved hjælp af latency kolonnen i sys.dm_change_feed_log_scan_sessions eller ved hjælp af den udvidede hændelse repl_logscan_dynamic_maxtrans for at se, om den current_maxtrans når sættet maxtrans . Hvis ventetiden stadig er høj, kan du overveje at øge den maxtrans øvre grænse ved hjælp af sys.sp_help_change_feed_settings.

Brug den udvidede hændelse repl_logscan_dynamic_maxtrans til at overvåge, om timeout sker ofte. Feltet prev_phase2_scan_termination_reason har en værdi LogScanTerminationReason_MaxScanDurationReached , når der sker en timeout fra scanningen. Overvej at sænke maxtrans eller deaktivere dynamisk maxtrans ved hjælp af sys.sp_help_change_feed_settings , hvis du bemærker hyppige timeouts.

Ressourceregulator til SQL Server-spejling

I SQL Server 2025 kan du oprette en ressource-governor pool til at styre og begrænse arbejdsbelastningen ved Fabric-spejling på din SQL Server. Du kan bruge ressourceregulatoren til at administrere ressourceforbruget i databaseprogrammet og gennemtvinge politikker for brugernes arbejdsbelastninger. Ressourceregulator giver dig mulighed for at reservere eller begrænse forskellige serverressourcer, herunder mængden af CPU, hukommelse og fysisk I/O, som arbejdsbelastninger i brugerforespørgsler kan bruge. På denne måde kan du beskytte dine primære forretningsarbejdsbelastninger mod pres fra Fabric Mirrorings indsamling af ændringsfeeddata. Du kan finde flere oplysninger i Ressourceregulator.

For at komme i gang med at konfigurere arbejdsbelastningsgrupper i SQL Server 2025 til Fabric-spejling skal du bruge følgende eksempelscript og instruktioner.

  • Du kan vælge et hvilket som helst navn til RESOURCE POOL.
  • Dette eksempelscript konfigurerer et loft for den ønskede procentdel af CPU'en for at tillade Fabric-spejling. Følgende eksempel bruges 50 til 50 procent. Denne værdi er den maksimale gennemsnitlige CPU-båndbredde, som alle anmodninger i ressourcepuljen kan modtage, når der er CPU-konflikt. Brug en lavere værdi til yderligere at begrænse stofspejling.
  • Navnene WORKLOAD GROUP skal matche værdierne i eksempelscriptet. Hver arbejdsbelastningsgruppe er til en bestemt fase af spejling. Hver arbejdsbelastningsgruppe kan være i den samme eller en anden pulje, afhængigt af hvordan du planlægger dine ressourceguverpuljer og arbejdsbelastninger.
  • Før du konfigurerer ressourceregulatoren for første gang på din SQL Server-forekomst, skal du omhyggeligt gennemse dokumentationen, eksemplerne og bedste praksis for ressourceguvernøren.
--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];

Sådan anvender du ændringerne og aktiverer ressourceregulatoren som normalt:

ALTER RESOURCE GOVERNOR RECONFIGURE