Symptome
Angenommen, Sie verfügen über eine Always On-Verfügbarkeitsgruppe (AG) in SQL Server 2016 und 2017. Bei der Verarbeitung einer Leseabfrage auf einem sekundären Replikat ist die Leistung aufgrund häufiger DIRTY_PAGE_TABLE_LOCK Wartezeiten möglicherweise viel langsamer als beim primären Replikat.
Ursache
Dieses Problem tritt aufgrund von Konflikten zwischen der Leseabfrage und dem Wiederholungsthread sowie einer Sperrung der Tabelle auf.
Lösung
Dieser Fix ist in den folgenden Updates für SQL Server enthalten:
Kumulatives Update 8 für SQL Server 2017
Kumulatives Update 1 für SQL Server 2016 Service Pack 2
Kumulatives Update 9 für SQL Server 2016 Service Pack 1
Informationen zu SQL Server-Builds
Jeder neue Build für SQL Server enthält alle Hotfixes und Sicherheitsfixes, die im vorherigen Build enthalten waren. Es wird empfohlen, den neuesten Build für Ihre Version von SQL Server zu installieren:
Neuestes kumulative Update für SQL Server 2017
Neuester Build für SQL Server 2016
Problemumgehung
Um dieses Problem zu umgehen, können Sie einen einzelnen Wiederholungsthread anstelle eines parallelen Wiederholungsthreads verwenden, indem Sie das Ablaufverfolgungsflag 3459 aktivieren.
Weitere Informationen
Wenn schreibgeschützte Abfragen auf einem lesbaren sekundären Replikat ausgeführt werden, versuchen Abfragethreads, ausstehende Protokollwiederholungsvorgänge anzuwenden, und müssen mit Wiederholungs-Arbeitsthreads mit DIRTY_PAGE_TABLE_LOCK Wartevorgängen zusammenarbeiten, was häufig generiert werden kann und sowohl die Wiederholungs- als auch die Abfrageleistung verlangsamt, wenn gleichzeitig Wiederholungsworkloads vorhanden sind. Das mit DIRTY_PAGE_TABLE_LOCK Warten verbundene Leistungsproblem wird in der kumulativen Updateversion für SQL Server 2016 SP und SQL Server 2017 behoben, die in diesem Artikel erwähnt wird.
Weitere Informationen finden Sie im folgenden Blog zum Wiederholungsmodell und zur Leistung des sekundären Replikats von Verfügbarkeitsgruppen.
Status
Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten ist, die im Abschnitt „Gilt für“ aufgeführt sind.
Referenzmaterial
Erfahren Sie mehr über die Terminologie , die Microsoft zum Beschreiben von Softwareupdates verwendet.