更改数据库兼容性级别和使用查询存储

适用于:SQL Server - 仅限 Windows

从 SQL Server 2016 (13.x) 及更高版本,某些更改仅在数据库兼容级别更改后才会启用。 执行此操作的原因如下:

  • 由于升级是单向操作(不可能降级文件格式),将新功能的启用分离为数据库内的单独操作有一定作用。 可以将一项设置还原到之前的数据库兼容性级别。 新的模式可以减少中断期间必然发生的事件的数量。

  • 更改查询处理器可能会产生复杂的影响。 尽管对系统进行“良好”的更改对于大多数负载来说可能是有益的,但对其他用户而言,可能会导致某些重要查询出现不可接受的性能下降。 将此逻辑与升级过程分离,允许功能(如查询存储)快速缓解计划选择回归,甚至在生产服务器中完全避免这些问题。

附加或还原数据库时,以及就地升级后,SQL Server 2017(14.x)需要以下行为:

  • 如果升级前用户数据库的兼容级别为 100 或更高,升级后将保持相应级别。
  • 如果升级前用户数据库的兼容级别为 90,则在升级后的数据库中,兼容级别将设置为 100,该级别为 SQL Server 2017 (14.x) 支持的最低兼容级别。
  • 升级后,tempdbmodelmsdbResource 数据库的兼容性级别被设置为当前兼容级别。
  • master 系统数据库保留它在升级之前的兼容级别。

用于启用新查询处理器功能的升级过程与产品的发布后服务模式相关。 这些修补程序中的一部分发布在跟踪标志 4199 下。 需要修补程序的客户可以选择加入这些修补程序而不会导致其他客户的意外回归。 查询处理器修补程序的发布后服务模式记录于 此处。 从 SQL Server 2016 (13.x) 开始,转换到新的兼容性级别意味着不再需要跟踪标志 4199,因为在最新的兼容性级别中,这些修补程序现在默认启用。 因此,作为升级过程的一部分,验证升级过程完成后未启用 4199 是很重要的。

注意

仍需要跟踪标志 4199 才能启用 RTM 之后发布的任何适用的新查询处理器修补程序。

有关将查询处理器升级到最新版本代码的建议工作流的信息,请参阅 在升级到查询存储使用方案的较新的 SQL Server 部分期间保持性能稳定性

显示将查询处理器升级到最新版本代码的建议工作流的关系图。

从 SQL Server Management Studio 18 开始,可以使用查询优化助手引导用户完成建议的工作流。 有关详细信息,请参阅 使用查询优化助手升级数据库