KB3181444 – LØSNING: Spørringer som kjøres mot sekundære databaser, kompileres alltid på nytt i SQL Server

Gjelder for
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

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:

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:

Kilder

Finn ut mer om terminologien som Microsoft bruker til å beskrive programvareoppdateringer.