升级兼容性级别会降低性能

您所在的位置:网站首页 数据库的兼容性与可推广性 升级兼容性级别会降低性能

升级兼容性级别会降低性能

2024-03-15 05:21| 来源: 网络整理| 查看: 265

将数据库兼容性级别从 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