KB3181444 — POPRAWKA: Zapytania uruchamiane w pomocniczych bazach danych są zawsze ponownie kompilowane w SQL Server

Dotyczy
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)

Objawy

Załóżmy, że używasz funkcji Zawsze włączonych grup dostępności w programie Microsoft SQL Server 2012, 2014 lub 2016. Każde wykonanie zapytania względem pomocniczej bazy danych powoduje jego ponowną kompilację. Ten problem występuje, ponieważ statystyki nie są prawidłowo propagowane z serwera podstawowego do serwera pomocniczego. Jeśli uruchomisz śledzenie profilera, znajdziesz coś podobnego do następującego o StatMan , co oznacza, że program SQL Server wykonuje zapytania statystyczne:

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 PROCENT) Z (READUNCOMMITTED) ) W _MS_UPDSTATS_TBL_HELPER KOLEJNOŚCI WEDŁUG [SC0], [SB0000] ) JAKO OPCJA _MS_UPDSTATS_TBL (MAXDOP 1)

Uwaga: Jeśli wyłączysz opcję Statystyki automatycznej aktualizacji lub włączysz opcję Automatyczna aktualizacja statystyk asynchronicznie, ten problem nie występuje.

Rozwiązanie

Ten problem został po raz pierwszy rozwiązany w następującej aktualizacji zbiorczej programu SQL Server:

Zalecenie: zainstalowanie najnowszej aktualizacji zbiorczej dla programu SQL Server

Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Zalecamy pobranie i zainstalowanie najnowszych aktualizacji zbiorczych dla programu SQL Server:

Źródła informacji

Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.