Symptomer
Antag, at du har en altid tilgængelig gruppe (AG) i SQL Server 2016 og 2017. Når du behandler en læseforespørgsel på en sekundær replika, kan ydeevnen være meget langsommere end den primære replika på grund af hyppige DIRTY_PAGE_TABLE_LOCK venter.
Årsag
Dette problem opstår på grund af strid mellem læseforespørgslen og fortrydtråden, og fordi tabellen er låst.
Løsning
Denne rettelse er inkluderet i følgende opdateringer til SQL Server:
Samlet opdatering 8 til SQL Server 2017
Samlet opdatering 1 til SQL Server 2016 Service Pack 2
Samlet opdatering 9 til SQL Server 2016 Service Pack 1
Om SQL Server-builds
Hvert nye build til SQL Server indeholder alle de hotfixes og sikkerhedsrettelser, der var i det tidligere build. Vi anbefaler, at du installerer det nyeste build til din version af SQL Server:
Løsning
Du kan løse dette problem ved at bruge en enkelt Fortryd-tråd i stedet for en parallel fortryd-tråd ved at aktivere Sporingsflag 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 fortryd af logfiler og har brug for at samarbejde med annullere fortryd af medarbejdertråde med DIRTY_PAGE_TABLE_LOCK ventetider, som kan genereres ofte og gøre både Fortryd og forespørgslens ydeevne langsommere, hvis der er samtidige Fortryd-arbejdsbelastninger. Det ydelsesproblem, der er knyttet til DIRTY_PAGE_TABLE_LOCK vente, er løst i den samlede opdateringsversion for SQL Server 2016 SP og SQL Server 2017, der er nævnt i denne artikel.
Du kan få mere at vide på følgende blog om fortrydmodel og ydeevne for gruppen Tilgængelighedsgruppe.
Status
Microsoft har bekræftet, at problemet findes i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".
Referencer
Få mere at vide om den terminologi , som Microsoft bruger til at beskrive softwareopdateringer.