Проблемы
Предположим, что вы используете группу доступности AlwaysOn в Microsoft SQL Server 2012, 2014 или 2016. Каждый раз при выполнении запроса к базе данных-получателю запрос перекомпилируется. Эта проблема возникает из-за того, что статистика не передается с основного сервера на сервер-получатель. Если вы запустили трассировку профилировщика, вы увидите нечто, похожее на следующее в отношении stat , что означает, что 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.
Ссылки
Ознакомьтесь с терминологией , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.