Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

ВВЕДЕНИЕ

В версиях Microsoft SQL Server более поздней версии SQL Server 2000 с пакетом обновления 3 (SP3) большинство префиксов были доставлены оптимизатору запросов в состоянии не по умолчанию, чтобы существующие клиенты не видели ожидаемых изменений планов, которые могут привести к регрессии производительности. Сначала каждый hotfix доставлялся под отдельным флагом трассировки. Позже эта методика была изменена таким образом, что большинство флагов были объединены под одним флагом трассировки (4199). Эта новая методика была инициировалась в нескольких версиях, начиная со следующих обновлений:

  • SQL Server обновления 3 (SP3) версии 2005

  • SQL Server пакет обновления 1 (SP1) версии 2008

  • SQL Server 2008 R2 (RTM)

Флаг трассировки 4199 использовался для сбора исправлений, которые должны были использоваться по умолчанию в будущих выпусках, в то время как другие флаги трассировки использовались для ситуаций, в которых исправление не должно было стать по умолчанию в текущей форме. Начиная с SQL Server RTM 2016, параметр COMPATIBILITY_LEVEL базы данных будет использоваться по умолчанию для отслеживания пометок 4199. В этой статье описаны механизмы и политика доставки префиксов, влияющих на план, для SQL Server 2016 и более поздних версий.

Дополнительная информация

В SQL Server 2016 г. в базе данных COMPATIBILITY_LEVEL будет включен флажок трассировки 4199 hotfix, которые были сделаны в предыдущих выпусках SQL Server, в базе данных COMPATIBILITY_LEVEL 130 без флага трассировки 4199. Флаг трассировки 4199 будет использоваться для выпуска всех будущих исправлений SQL Server 2016 для баз данных с использованием уровня совместимости 130. Так как флаг трассировки 4199 рекомендуется использовать только для клиентов, у которых есть определенные проблемы с производительностью, клиентам рекомендуется удалить флаг трассировки 4199 после переноса баз данных на последний уровень совместимости, так как флаг трассировки 4199 будет повторно применяться для будущих исправлений, которые могут не применяться к вашему приложению и могут привести к непредвиденным изменениям производительности плана в производственной системе. Это означает, что для каждого уровня совместимости, поддерживаемого в данном выпуске продукта, включены разные исправление флага трассировки 4199. На последнем уровне совместимости все предыдущие исправления под флагом трассировки 4199 уже были исправлены. Это означает, что обновление базы данных до последней совместимости и удаление флага трассировки 4199 по-прежнему обеспечивают все исправления, которые были за счет рабочей нагрузки перед обновлением базы данных, а не только новые исправления. Если позднее клиенты будут испытывает проблемы с производительностью запросов, поэкспериментируйте с включением параметра области базы QUERY_OPTIMIZER_HOTFIXES или подсказки запроса ENABLE_QUERY_OPTIMIZER_HOTFIXES в тестовой среде, чтобы определить, разрешены ли проблемы. Обратитесь к документации поQUERY_OPTIMIZER_HOTFIXES . 

Примечание. По умолчанию в базах данных, созданных в SQL Server 2016, используется уровень совместимости 130 и уже включена новая логика оптимизации.

Главное преимущество этой модели заключается в том, что она снижает риск для производственных систем в процессе обновления. Этот подход отделяет установку новой основной версии SQL Server от автоматического включения всех новых изменений процессора запросов. Так как при обновлении основных версий формат файла меняется и его нельзя отменить, лучше использовать параметр COMPATIBILITY_LEVEL, так как это позволяет клиенту быстро перейти на более новую версию, если во время обновления возникла непредвиденное проблему с производительностью плана. Если клиент обнаружит непредвиденное изменение плана, которое блокирует обновление приложения, он может упростить ситуацию, применив соответствующий план с помощью магазина запросов, чтобы применить предыдущий план, или обратитесь в службу поддержки клиентов Майкрософт за помощью в поиске обходного решения или использования hotfix. Если уменьшить количество проблем, обновление может продолжаться. Клиенты должны интегрировать эту возможность в планирование обновления SQL Server 2016.

В следующей таблице объясняется модель работы флага трассировки 4199 начиная с SQL Server 2016.

Параметр

SQL уровня совместимости

Флаг трассировки 4199

Префиксы оптимизатора до SQL Server RTM 2016

Оптимизированные hotfixes после SQL Server RTM 2016

1.

120

Выкл.

Отключен

Отключен

2.

120

Вкл

Включен

Отключен

3.

130

Выкл.

Включено на уровне совместимости

Отключен

4.

130

Вкл

Включено на уровне совместимости

Включено на уровне совместимости

Примечание. Для клиентов, которые обновляются до SQL Server 2016, рекомендуется установить SQL Server 3.

Для основных выпусков SQL Server 2016 г. корпорация Майкрософт планирует продолжать использовать эту модель обслуживания для оптимизации hotfix. По умолчанию (или в каждом выпуске) все исправление флага трассировки 4199 из предыдущего выпуска будут включены на следующем уровне совместимости. Это означает, что рекомендуемое состояние для клиентов после перехода на последний уровень совместимости будет иметь отключенную пометку трассировки 4199. Позже с помощью флага трассировки 4199 можно было бы включить исправления для клиентов, которым необходимо включить определенные исправления в приложении. Клиентам рекомендуется отключить флажок трассировки 4199 после обновления приложения до последней версии, чтобы избежать неожиданного включения в приложении будущих изменений оптимизатора. Это обновление до последней совместимости и удаление флага трассировки 4199 по-прежнему включает все исправления, которые были за счет рабочей нагрузки перед обновлением, а не новые исправления.

Примечание. Хотя многие hotfixer-оптимизатора включены под флагом трассировки 4199, в некоторых используются другие флаги трассировки. Флаг трассировки 4199 традиционно охватывает флаги трассировки, которые широко применимы и, вероятнее всего, будут включены по умолчанию в будущих выпусках. Альтернативные флаги трассировки используются в префиксах, где условия вполне конкретны только для нескольких клиентов, где исправление может привести к регрессии производительности в других приложениях или когда внутренняя функциональность может увидеть изменения, прежде чем она будет готова к включению для всех пользователей. Корпорация Майкрософт по-прежнему будет использовать другие флаги трассировки для обслуживания продукта.

Примечание В этой статье посвящена модель для выпуска исправлений флага трассировки 4199 на последнем уровне совместимости последнего продукта. (Во время публикации это SQL Server 2016.) Исправление оптимизатора может быть выпущено в более старых версиях SQL Server или на более низких уровнях совместимости (120 или более старых) SQL Server 2016. Корпорация Майкрософт оценивает каждый случай и определяет, следует ли использовать флаг трассировки 4199 или другой флажок трассировки. Так как изменения, не внося в исправление, также включаются при переходе на более поздний уровень совместимости, не существует особых сомнений в том, что при обновлении (с флагом трассировки 4199 или без нее) не произойдет никаких изменений в плане. Клиентам следует всегда тщательно тестировать изменения уровня совместимости для производственных приложений и использовать технологии снижения снижения производительности, такие как магазин запросов, при проблемах с производительностью, связанной с выбором планов.

Для справки перед введением флага трассировки 4199 для префиксов процессора запросов использовались следующие флаги трассировки:

4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4115, 4116, 4117, 4119, 4120, 4121, 4122, 4124, 4125, 4126, 4127, 4128, 4129, 4131, 4133, 4135.

SQL Server 2012 и более поздних версий

Флаг трассировки 4199 входит в выпуски SQL Server 2012 и более поздних версий.

Как включить флаг трассировки 4199

Вы можете включить флажок трассировки 4199 при запуске или в сеансе пользователя. Этот флаг трассировки имеет глобальный или сеансный эффект. Чтобы включить флаг трассировки 4199, используйте команду DBCC TRACEON или используйте –T 4199 в качестве параметра запуска.

Если используется DBCC TRACEON\TRACEOFF, новый план кэшации хранимой процедур не будет сгенерироваться повторно. Планы могут быть в кэше, созданных без флага трассировки.

Подробные сведения о том, как включить или отключить флажки трассировки, а также пояснения глобальных флагов и флагов трассировки на уровне сеанса, можно найти в следующих SQL Server Books Online:

Ссылки

Чтобы получить дополнительные сведения о схеме именования для SQL Server обновлений, щелкните номер следующей статьи, чтобы просмотреть статью в базе знаний Майкрософт:

822499
Новая схема именования для пакетов обновления Microsoft SQL Server программного обеспечения
Чтобы получить дополнительные сведения о терминологии обновления программного обеспечения, щелкните номер следующей статьи, чтобы просмотреть статью в базе знаний Майкрософт:

824684
Описание стандартных терминов, используемых для описания обновлений программного обеспечения Майкрософт

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×