Symptomer
Anta at du bruker funksjonen AlwaysOn Availability Groups i Microsoft SQL Server 2012, 2014 eller 2016. Hver gang du kjører en spørring mot en sekundær database, kompileres spørringen på nytt. Dette problemet oppstår fordi statistikken ikke overføres riktig fra primærserveren til sekundærserveren. Hvis du kjører profilerersporingen, finner du noe lignende om StatMan , som betyr at SQL-serveren spør etter statistikk:
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 PROSENT) MED (READUNCOMMATED) ) SOM _MS_UPDSTATS_TBL_HELPER ORDRE ETTER [SC0], [SB0000] ) SOM _MS_UPDSTATS_TBL ALTERNATIV (MAXDOP 1)
Obs! Hvis du deaktiverer alternativet Automatisk oppdatering av statistikk eller aktiverer alternativet Automatisk oppdatering av statistikk asynkront, oppstår ikke dette problemet.
Oppløsning
Problemet ble først løst i følgende kumulative oppdatering av SQL Server:
- Kumulativ oppdatering 2 SQL Server 2016 SP1
- Kumulativ oppdatering 4 for SQL Server 2016
- Kumulativ oppdatering 3 for SQL Server 2014 SP2
- Kumulativ oppdatering 8 for SQL Server 2014 SP1
- Kumulativ oppdatering 5 for SQL Server 2012 Service Pack 3 (SP3)
Anbefaling: Installer den nyeste kumulative oppdateringen for SQL Server
Hver nye kumulative oppdatering for SQL Server inneholder alle hurtigreparasjoner og alle sikkerhetsrettinger som fulgte med den forrige kumulative oppdateringen. Vi anbefaler at du laster ned og installerer de nyeste kumulative oppdateringene for SQL Server:
- Den nyeste kumulative oppdateringen for SQL Server 2016
- Den nyeste kumulative oppdateringen for SQL Server 2012 SP3
- Den nyeste kumulative oppdateringen for SQL Server 2014 SP1/SP2
Kilder
Finn ut mer om terminologien som Microsoft bruker til å beskrive programvareoppdateringer.