Published on

February 9, 2018

Понимание исправлений оптимизатора SQL Server

Когда дело доходит до применения обновлений или обновлений SQL Server, важно понимать, что не все исправления применяются автоматически. Фактически, Microsoft намеренно избегает внесения нарушающих изменений в свое программное обеспечение, что означает, что некоторые исправления оптимизатора скрыты за флагом трассировки.

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

Однако, начиная с SQL Server 2016, Microsoft представила новую опцию под названием “Исправления оптимизатора запросов”, которая выносит эту функциональность на передний план. Эта опция, которая по умолчанию отключена, обеспечивает ту же защиту, что и флаг трассировки 4199, но теперь может быть управляема и включена на уровне базы данных.

Установив опцию “Исправления оптимизатора запросов” в значение ON, все изменения оптимизатора из предыдущих обновлений будут автоматически включены для уровней совместимости ниже 130 (SQL Server 2016). Это означает, что при переходе с одного уровня совместимости на другой вы можете воспользоваться всеми изменениями оптимизатора без необходимости использования флага трассировки.

Так почему бы все же включить эту опцию, если вы можете просто изменить уровни совместимости, чтобы воспользоваться изменениями оптимизатора? Есть несколько сценариев, где эта опция все еще полезна:

  • Если в будущем будут обновления SQL Server, включение этой опции гарантирует, что исправления оптимизатора будут автоматически применяться без необходимости вручную вмешиваться.
  • Если вы застряли на более низком уровне совместимости из-за стороннего приложения или кода, который нельзя обновить, включение этой опции позволяет воспользоваться исправлениями оптимизатора после обновлений.

Включение опции “Исправления оптимизатора запросов” устраняет необходимость помнить о включении флага трассировки 4199 после установки или иметь его включенным при запуске. Однако важно отметить, что если вы включаете эту опцию в производственной среде, крайне важно тщательно протестировать исправления в среде разработки перед их внедрением.

Для получения дополнительной информации о истории флага трассировки 4199 вы можете обратиться к следующему ресурсу: [ссылка на ресурс].

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.