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:
- Aktualizacja zbiorcza 2 SQL Server 2016 z dodatkiem SP1
- Aktualizacja zbiorcza 4 dla programu SQL Server 2016
- Aktualizacja zbiorcza 3 dla programu SQL Server 2014 z dodatkiem SP2
- Aktualizacja zbiorcza 8 dla programu SQL Server 2014 z dodatkiem SP1
- Aktualizacja zbiorcza 5 dla programu SQL Server 2012 z dodatkiem Service Pack 3 (SP3)
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:
- Najnowsza aktualizacja zbiorcza dla programu SQL Server 2016
- Najnowsza aktualizacja zbiorcza dla programu SQL Server 2012 z dodatkiem SP3
- Najnowsza aktualizacja zbiorcza dla programu SQL Server 2014 z dodatkiem SP1/SP2
Źródła informacji
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.