Symptomer
Antag, at du har en altid tilgængelig gruppe i SQL Server 2016 og 2017. Når du behandler en læseforespørgsel på en sekundær replika, kan ydelsen være meget langsommere end på den primære replika pga. hyppige DIRTY_PAGE_TABLE_LOCK ventetider.
Årsag
Dette problem opstår på grund af konflikter mellem læseforespørgslen og annuller fortryd-tråden, og fordi tabellen er låst.
Løsning
Denne rettelse er inkluderet i følgende opdateringer til SQL Server:
Akkumuleret opdatering 8 til SQL Server 2017
Samlet opdatering 1 til SQL Server 2016 Service Pack 2
Kumulativ opdatering 9 til SQL Server 2016 Service Pack 1
Om SQL Server-builds
Hvert nyt build til SQL Server indeholder alle de programrettelser og sikkerhedsrettelser, der var i det tidligere build. Vi anbefaler, at du installerer det nyeste build til din version af SQL Server:
Seneste kumulative opdatering til SQL Server 2017
Det nyeste build til SQL Server 2016
Løsning
Du kan løse dette problem ved at bruge en enkelt Annuller Fortryd-tråd i stedet for en parallel Annuller Fortryd-tråd ved at aktivere Spor flag 3459.
Flere oplysninger
Når skrivebeskyttede forespørgsler kører på en læsbar sekundær replika, forsøger forespørgselstråde at anvende ventende gentagelseshandlinger og har brug for at samarbejde med Annuller Fortryd-arbejdstråde med DIRTY_PAGE_TABLE_LOCK ventetider, som ofte kan genereres og gør ydeevnen langsommere for både Annuller Fortryd og Forespørgselsydeevnen, hvis der er samtidige Annuller Fortryd-arbejdsbelastninger. Det ydelsesproblem, der er knyttet til DIRTY_PAGE_TABLE_LOCK ventetid, er løst i den kumulative opdatering til SQL Server 2016 SP og SQL Server 2017, der er nævnt i denne artikel.
Du kan finde flere oplysninger i følgende blog om model og ydeevne for Tilgængelighedsgruppe, sekundær replika og Annuller Fortryd.
Status
Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".
Referencer
Læs mere om den terminologi , Microsoft bruger til at beskrive softwareopdateringer.