Изменение уровня совместимости базы данных и использование хранилище запросов

Область применения: SQL Server — только Для Windows

В SQL Server 2016 (13.x) и более поздних версиях некоторые изменения включены только после изменения уровня совместимости базы данных. Это сделано по нескольким причинам:

  • Так как обновление является односторонней операцией (невозможно уменьшить формат файла), существует значение разделения включения новых функций на отдельную операцию в базе данных. Можно вернуть параметр на предыдущий уровень совместимости базы данных. Новая модель сокращает количество операций, которые должны быть выполнены во время отказа системы.

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

Для SQL Server 2017 (14.x) ожидается следующее поведение при присоединении или восстановлении базы данных и после обновления на месте:

  • Если уровень совместимости пользовательской базы данных до обновления был 100 или выше, после обновления он останется таким же.
  • Если уровень совместимости пользовательской базы данных был 90 до обновления, в обновленной базе данных устанавливается уровень совместимости 100, который является самым низким поддерживаемым уровнем совместимости в SQL Server 2017 (14.x).
  • Уровни совместимости tempdbбаз данных и modelmsdb ресурсов устанавливаются на текущий уровень совместимости после обновления.
  • Системная база данных master сохраняет уровень совместимости, который она имела до обновления.

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

Примечание.

Флаг трассировки 4199 по-прежнему необходим для включения новых исправлений обработчика запросов, выпущенных после RTM, если применимо.

Рекомендуемый рабочий процесс для установки последней версии кода в обработчике запросов представлен в разделе Обеспечение стабильной производительности во время обновления до более новой версии раздела SQL Server "Сценарии использования хранилища запросов" ниже.

Схема рекомендуемого рабочего процесса для обновления до последней версии обработчика запросов.

Начиная с SQL Server Management Studio версии 18 пользователи могут просматривать рекомендуемый рабочий процесс с помощью помощника по настройке запросов. Дополнительные сведения: Обновление баз данных с помощью помощника по настройке запросов.

См. также