升级兼容性级别会降低性能 |
您所在的位置:网站首页 › 数据库的兼容性与可推广性 › 升级兼容性级别会降低性能 |
将数据库兼容性级别从 120 升级到 130 时性能下降
项目
06/20/2023
本文可帮助你解决将数据库兼容性级别从 120 升级到 130 时出现的问题。 原始产品版本:Windows SQL Server 2016 SQL Server 2017 (所有版本) 原始 KB 编号: 3212023 摘要请考虑以下情况: 使用筛选器和函数(例如STIntersects在 windows 上的 SQL Server 2016 或 SQL Server 2017 中)运行空间查询。 数据库兼容级别为 120。 查询使用并行执行计划。 将数据库兼容性级别升级到 130,执行计划已从并行更改为串行。在此方案中,如果查询返回大型结果集,则性能会降低。 解决方案若要解决此问题,请尝试以下方法之一: 将数据库兼容级别还原到 120。 执行此操作时,将无法从数据库兼容性级别 130 下的 Windows SQL Server 2016 或 SQL Server 2017 中提供的一些功能中受益。 但是,你仍然可以实现许多未绑定到数据库兼容性级别的改进,例如,使用空间数据类型的查询操作的整体性能改进。 有关需要数据库兼容性级别 130 的 SQL Server 2016 增强功能的列表,请参阅 ALTER DATABASE (Transact-SQL) 兼容级别。 如果该计划提供更好的性能,则强制使用数据库兼容性级别 120 生成的计划。 可以使用查询提示在以数据库兼容性级别 130 USE PLAN 运行时强制实施此计划。 有关使用提示的详细信息,请参阅 提示 (Transact-SQL) - 查询。 或者,使用查询存储来标识和修复特定的计划选择。 有关使用查询存储实现此目的的详细信息,请参阅查询存储使用方案。 更多信息SQL Server数据库兼容性级别 120 和 130 使用不同的方法来估算谓词的基数,其中标量用户定义函数或特定的 T-SQL 函数 ((如 STIntersects) )与常量进行比较。 尽管与级别 120 相比,数据库兼容性级别 130 使用的成本模型为许多工作负荷提供了性能提升,但对于某些查询, (取决于所使用的数据和函数,) 查询计划的性能实际上可能会下降到级别 130。 适用对象 Windows 上的 SQL Server 2017(所有版本) SQL Server 2016 Service Pack 1 SQL Server 2016 Developer SQL Server 2016 Enterprise SQL Server 2016 Express SQL Server 2016 Standard SQL Server 2016 Web |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |