Příznaky
Předpokládejme, že máte v SQL Server 2016 a 2017 skupinu dostupnosti Always On. Při zpracování dotazu čtení na sekundární replice může být výkon mnohem pomalejší než u primární repliky kvůli častému čekání na DIRTY_PAGE_TABLE_LOCK.
Příčina
K tomuto problému dochází kvůli kolizi mezi dotazem čtení a vláknem opakování a proto, že je tabulka uzamčená.
Řešení
Tato oprava je součástí následujících aktualizací pro SQL Server:
Kumulativní aktualizace 8 pro SQL Server 2017
Kumulativní aktualizace 1 pro SQL Server 2016 Service Pack 2
Kumulativní aktualizace 9 pro SQL Server 2016 Service Pack 1
O buildech systému SQL Server
Každý nový build pro SQL Server obsahuje všechny opravy hotfix a opravy zabezpečení, které byly v předchozím buildu. Doporučujeme nainstalovat nejnovější build pro vaši verzi SQL Server:
Nejnovější kumulativní aktualizace pro SQL Server 2017
Nejnovější build pro SQL Server 2016
Alternativní řešení
Chcete-li tento problém obejít, můžete použít jedno vlákno opakování namísto paralelního vlákna opakování povolením příznaku sledování 3459.
Další informace
Pokud jsou dotazy jen pro čtení spuštěné na čitelné sekundární replice, vlákna dotazů se pokusí použít čekající operace opakování protokolu a musí spolupracovat s pracovními vlákny opakování s DIRTY_PAGE_TABLE_LOCK čekáním, které se můžou často generovat a zpomalovat výkon opakování i dotazů, pokud existují souběžné úlohy opakování. Problém s výkonem spojeným s DIRTY_PAGE_TABLE_LOCK čekáním řeší vydání kumulativní aktualizace pro SQL Server 2016 SP a SQL Server 2017, které je zmíněno v tomto článku.
Další informace najdete v následujícím blogu o modelu opakování sekundární repliky skupiny dostupnosti a výkonu.
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.
Reference
Přečtěte si o terminologii , kterou společnost Microsoft používá k popisování aktualizací softwaru.