Příznaky
Předpokládejme, že používáte funkci skupiny dostupnosti AlwaysOn serveru Microsoft SQL Server 2012, 2014 nebo 2016. Při každém spuštění dotazu na sekundární databázi se dotaz znovu zkompiluje. K tomuto problému dochází, protože statistiky nejsou z primárního serveru přeneseny na sekundární server. Pokud spustíte trasování profileru, uvidíte něco podobného , co znamená , že SQL Server používá dotazování statistiky:SELECT StatMan([SC0], [SB0000]) FROM (SELECT TOP 100 PERCENT [SC0], step_direction([SC0]) over (order by NULL) AS [SB0000] FROM (SELECT [xxx] AS [SC0] FROM [dbo].[xxx] TABLESAMPLE SYSTEM (7.033584e-001 PERCENT) WITH (READUNCOMMITTED) ) AS _MS_UPDSTATS_TBL_HELPER ORDER BY [SC0], [SB0000] ) AS _MS_UPDSTATS_TBL OPTION (MAXDOP 1) Poznámka Pokud zakážete možnost automaticky aktualizovat statistiku nebo možnost asynchronní aktualizace automaticky , k tomuto problému nedochází.
Řešení
Tento problém byl poprvé opraven následující kumulativní aktualizací SQL serveru:
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Doporučujeme stáhnout a nainstalovat nejnovější kumulativní aktualizace pro SQL Server:
Odkazy
Informace o terminologii používané společností Microsoft k popisu aktualizací softwaru.