KB4538497 - 修复:在 SQL Server 2017 和 2019 中将查询谓词与 UPPER、LOWER 或 RTRIM 配合默认 CE 使用时查询性能降低

应用对象
SQL Server 2017 on Windows SQL Server 2019 on Windows

症状

假设已安装 Microsoft SQL Server 2017 或 2019,并且它使用默认的基数估计 (CE) 运行。 执行对列 Col1 有筛选谓词的查询。 查询谓词具有内部函数 UPPER、LOWER 或 RTRIM。 col1 具有可供优化器使用的统计信息。 在此方案中,可能会观察到基数估计不准确,并且 SQL Server 使用的计划效率低下。 下面是一些具有谓词的查询:

SELECT person_id FROM Person WHERE (email LIKE UPPER (N'@live.com%') )

SELECT person_id FROM Person WHERE (email = UPPER (N'msft@live.com') )

      

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

解决方法

此问题已在 SQL Server 的以下累积更新中修复:

关于 SQL Server 的累积更新:

SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

备注 此修复需要以下操作之一生效:

参考资料

了解 Microsoft 用于描述软件更新的术语。