Ознаки
Припустімо, що ви використовуєте функцію "групи доступності AlwaysOn" в Microsoft SQL Server 2012, 2014 або 2016. Під час кожного виконання запиту з другорядною базою даних запит перекомпілюється. Ця проблема виникає через те, що статистика не поширюється належним чином від основного сервера до вторинного сервера. Якщо ви запускаєте трасування Profiler, ви побачите щось подібне з такими відомостями про Statman , що означає SQL Server, що стосується статистики: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) Примітка. У разі вимкнення параметра " Статистика автоматичного оновлення " або ввімкнення функції автоматичного оновлення статистики для асинхронної обробки даних ця проблема не виникає.
Спосіб вирішення
Цю проблему вирішено в такому сукупному оновленні сервера SQL Server:
Кожне нове Сукупне оновлення для SQL Server містить усі поточні виправлення та всі виправлення системи безпеки, які були включені до попереднього сукупного оновлення. Радимо завантажити та інсталювати найновіші накопичувальне оновлення для сервера SQL Server:
Посилання
Відомості про термінологію , яку корпорація Майкрософт використовує для опису оновлень програмного забезпечення.