了解兼容性级别

已完成

过去,为 SQL Server 构建软件的软件供应商已认证他们的软件可以在特定版本的数据库引擎上运行。 例如,经认证,SharePoint 2016 只能在 SQL Server 2014 上运行。 此过程称为兼容性认证,允许应用程序在最新版本的 SQL Server 上运行,同时保持其供应商支持的兼容性级别。

SQL Server兼容性级别始终是数据库级别的设置。 将兼容性级别设置为特定版本允许使用特定的 T-SQL 关键字,因为它也决定了某些查询优化器的行为。 例如,如果你的一个数据库处于特定的兼容性级别,并且已迁移到 SQL Server 2019,那么,执行计划形状和查询语法应保持与迁移前的初始状态相同(如果它是受支持的版本)。

Azure SQL 数据库和 Azure SQL 托管实例的数据库引擎版本与 SQL Server 内部生成号没有可比性,但它们确实指的是相同的兼容性级别。

可以通过执行如下所示的查询来检查数据库的兼容性级别:

SELECT name, compatibility_level FROM sys.databases;

SQL Server 的支持策略

Microsoft 对 SQL Server 有一个宽松的支持策略。 各版本在主要支持下获得 5 年支持,然后在外延支持中额外获得 5 年支持。 在前五年中,Microsoft 使用增强功能更新所有版本,弥补功能上的不足,并修复性能、功能和安全方面的 bug。 在版本进入外延支持期后,Microsoft 将仅修复安全方面的 bug。

在最新版本的 SQL Server 上运行有诸多好处,包括以下类别的增强功能:

  • 性能
  • 安全性
  • 可用性
  • 查询功能

SQL Server 的一到两年的发布周期和 Azure SQL 数据库服务的性质进一步改善了这些优势,这意味着它在任何情况下都不需要进行修补或升级,因为新的功能会自动添加,修复会自动应用。

Microsoft 已经建议应用程序供应商在特定的兼容性级别(而不是针对特定软件版本)认证应用程序。 这种方法将帮助客户利用较新版本的 SQL Server,但保持供应商对应用程序的支持。

Microsoft 包括查询计划形状保护,这意味着查询执行计划及其性能应该几乎相同(在类似的硬件上)。 此功能消除了在升级 SQL Server 时的一个主要风险:导致查询性能下降的优化器更改。 Microsoft 仍建议尽可能升级到较新的兼容性级别,但只要你运行的 SQL Server 版本是受支持的 SQL Server 版本,就会支持较旧兼容性级别的数据库。

详细了解支持的兼容性级别