Измените уровень совместимости базы данных и используйте хранилище запросов
Применимо к:SQL Server — только Windows
В SQL Server 2016 (13.x); и выше некоторые изменения становятся доступны только после того, как изменится уровень совместимости базы данных. Это сделано по нескольким причинам:
Так как обновление — это односторонняя операция (понизить формат файла невозможно), важно разделить включение новых функций на отдельную операцию в базе данных. Можно отменить изменения параметр на предыдущий уровень совместимости базы данных. Новая модель сокращает количество операций, которые должны быть выполнены во время отказа системы.
Изменения в обработчике запросов могут иметь сложные последствия. Даже небольшое "удобное" изменение в системе, которое подойдет большинству рабочих нагрузок, может привести к неприемлемой регрессии в каком-либо важном запросе для других нагрузок. Отделение этой логики от процесса обновления позволяет таким компонентам, как хранилище запросов, быстро нивелировать регрессию, связанную с выбором плана, и даже полностью избежать подобных проблем в рабочей среде.
При подключении или восстановлении базы данных, а также после обновления на месте в SQL Server 2017 (14.x); ожидается описанное ниже поведение.
- Если уровень совместимости пользовательской базы данных до обновления был 100 или выше, после обновления он останется таким же.
- Если уровень совместимости пользовательской базы данных до обновления был равен 90, в обновленной базе данных он получает значение 100, что соответствует минимальному поддерживаемому уровню совместимости в SQL Server 2017 (14.x);.
- Уровни совместимости
tempdb
баз данных ,model
иmsdb
Resource устанавливаются на текущий уровень совместимости после обновления. - Системная база данных
master
сохраняет уровень совместимости, который она имела до обновления.
Процесс обновления для включения нового обработчика запросов относится к модели обслуживания, которая предназначена для периода после выпуска продукта. Некоторые из этих исправлений выпускаются под флагом трассировки 4199. Клиенты, нуждающиеся в исправлениях, могут согласиться на эти исправления, не вызывая непредвиденной регрессии для других клиентов. Модель обслуживания, предназначенная для периода после выпуска исправления обработчика запросов, описана здесь. Начиная с SQL Server 2016 (13.x), переход на новый уровень совместимости подразумевает, что флаг трассировки 4199 больше не требуется, так как эти исправления теперь включены по умолчанию на последнем уровне совместимости. Поэтому в рамках процесса обновления важно убедиться, что 4199 не включен после завершения процесса обновления.
Примечание
Флаг трассировки 4199 по-прежнему необходим для включения всех новых исправлений обработчика запросов, выпущенных после RTM, если применимо.
Рекомендуемый рабочий процесс для установки последней версии кода в обработчике запросов представлен в разделе Обеспечение стабильной производительности во время обновления до более новой версии раздела SQL Server "Сценарии использования хранилища запросов" ниже.
Начиная с SQL Server Management Studio v18, помощник по настройке запросов может помочь пользователям в следовании рекомендуемому рабочему процессу. Дополнительные сведения: Обновление баз данных с помощью помощника по настройке запросов.
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по