Symptomer
Antag, at du bruger funktionen AlwaysOn-tilgængelighedsgrupper i Microsoft SQL Server 2012, 2014 eller 2016. Hver gang du udfører en forespørgsel i forhold til en sekundær database, kompileres forespørgslen igen. Dette problem opstår, fordi statistikker ikke overføres korrekt fra den primære server til den sekundære server. Hvis du kører profiler-sporingen, vil du finde noget lignende med følgende om StatMan , hvilket betyder, at SQL-serveren forespørger om statistik:
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) MED (READUNCOMMMITTED) ) SOM _MS_UPDSTATS_TBL_HELPER ORDRE AF [SC0], [SB0000] ) SOM _MS_UPDSTATS_TBL OPTION (MAXDOP 1)
Bemærk! Hvis du deaktiverer indstillingen Automatisk opdatering af statistik eller aktiverer indstillingen Automatisk opdatering af statistik asynkront, forekommer dette problem ikke.
Løsning
Problemet blev først rettet i følgende kumulative opdatering af SQL Server:
- Samlet opdatering 2 SQL Server 2016 SP1
- Akkumuleret opdatering 4 til SQL Server 2016
- Kumulativ opdatering 3 til SQL Server 2014 SP2
- Kumulativ opdatering 8 til SQL Server 2014 SP1
- Kumulativ opdatering 5 til SQL Server 2012 Service Pack 3 (SP3)
Anbefaling: Installér den seneste kumulative opdatering til SQL Server
Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Vi anbefaler, at du downloader og installerer de seneste kumulative opdateringer til SQL Server:
- Seneste kumulative opdatering til SQL Server 2016
- Seneste kumulative opdatering til SQL Server 2012 SP3
- Seneste kumulative opdatering til SQL Server 2014 SP1/SP2
Referencer
Få mere at vide om den terminologi, som Microsoft bruger til at beskrive softwareopdateringer.