症状
请考虑以下情况:
-
你有一个包含谓词的查询,该谓词涉及参数化标量用户定义的函数。
-
输入参数值的多个组合可能会由此用户定义的函数产生相同的结果。
-
SQL Server 使用将数据库兼容模式设置为120的新基数预估器。
在这种情况下,当你运行查询时,由于在查询计划中涉及用户定义函数的谓语的行数不正确,导致查询性能较差。
解决方案
此问题首先在 SQL Server 的以下累积更新中修复:
SQL Server 2014 的累积更新 6 Service Pack 1安装此累积更新包后,必须启用跟踪标记4199。 若要执行此操作,您可以添加 -T4199 启动参数。 或者,你可以对特定会话使用 dbcc traceon (4199) 语句。
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的 术语 。