У нас есть эта проблема в нашей производственной среде.
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) - Enterprise Edition (64-разрядная версия) в Windows NT 6.1 (сборка 7601: пакет обновления 1).
SQL Server отбрасывает все (почти 100%) старые планы выполнения и воссоздает их каждый день в одночасье (с 11:00 до 8:00). Это даже происходило, когда «статистика автоматического обновления» была в отключенном состоянии. Мы включили «автоматическое обновление статистики» за последние 2-3 недели. Но это все еще происходит.
Мы на самом деле не знаем, что вызывает это повторное создание планов, но мы уверены, что мы не будем делать это вручную.
Единственное, что действительно совпадает со сроками создания планов, это работа по обслуживанию БД, которая у нас есть: реорганизация ежедневного индекса (при фрагментации 5-30%) и перестройка ежедневного индекса (при фрагментации более 30% ) работа. Обычно эта ежедневная работа по обслуживанию выполняет только реорганизацию (поскольку фрагментация индекса не превышает 30% в день).
Влияние:
Эти недавно созданные планы заставляют некоторые вызовы / запросы UDF (которые вызываются из пользовательского интерфейса / веб-страниц) занимать намного больше времени (в отличие от минут, а не 1 секунды), и поэтому сессии просто накапливаются, загружая ЦП почти на 90%. ,
Проблема исчезает в тот момент, когда эти застрявшие сеансы принудительно удаляются (на стороне БД), и 1) когда все соответствующие планы выполнения очищаются вручную (для запросов) или 2), когда изменяются пользовательские функции (для функций). Любые новые планы, созданные SQL-сервером с этого момента, работают безупречно в течение дня, пока на следующее утро не возникнет та же проблема. Кроме того, это поведение не на все 100%, мы не видим его каждое утро. Но были периоды времени, когда мы видели это последовательно в течение 4-5 дней подряд.
Проблема случается по утрам в бизнесе, то есть, когда пользовательский интерфейс / веб-страницы становятся доступнее, кажется.
У кого-нибудь есть подсказка, что вызывает это и как решить эту проблему? Любая помощь приветствуется.