KB3181444 – KORJAUS: Toissijaisia tietokantoja vastaan suoritettavat kyselyt käännetään aina uudelleen SQL Server

Käytetään kohteeseen
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)

Ongelman ilmenemistapa

Oletetaan, että käytät AlwaysOn-käytettävyysryhmät-ominaisuutta Microsoft SQL Server 2012:ssa, 2014:ssä tai 2016:ssa. Aina kun suoritat kyselyn toissijaisessa tietokannassa, kysely käännetään uudelleen. Tämä ongelma ilmenee, koska tilastot eivät välity oikein ensisijaisesta palvelimesta toissijaiseen palvelimeen. Jos suoritat profiloinnin jäljityksen, löydät jotain vastaavaa StatManista , eli SQL-palvelin kyselee tilastotietoja:

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)

Huomautus: Jos poistat käytöstä Automaattinen tilastopäivitys -asetuksen tai otat käyttöön Automaattinen päivitys tilastot -asetuksen asynkronisesti, tämä ongelma ei ilmene.

Ratkaisu

Ongelma korjattiin ensimmäisen kerran seuraavassa SQL Server kumulatiivisessa päivityksessä:

Suositus: Asenna uusin kumulatiivinen päivitys SQL Server:lle

Jokainen uusi SQL Server -kumulatiivinen päivitys sisältää kaikki edelliseen kumulatiiviseen päivitykseen sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Suosittelemme, että lataat ja asennat uusimmat kumulatiiviset päivitykset SQL Server:lle:

Viitteet

Lue tietoja Microsoftin ohjelmistopäivitystensä kuvaamiseen käyttämästä sanastosta.