Jef*_*eff 10 sql-server execution-plan sql-server-2014
我们最近将我们的服务器从 SQL Server 2008R2 升级到 SQL Server 2014。我们有一个查询在 2008R2 中运行良好,但现在在 2014 年运行速度非常慢并且执行计划很糟糕。
我做了几次测试...
这两者都导致查询运行与 SQL Server 2008R2 相同且速度快。
为什么 SQL Server 2014 中的计划如此糟糕且查询运行时间如此之长?
此图显示了 2 个查询,一个使用 rownumber 其在 2008R2 中运行的方式,然后第二个是使用分页进行修复。两者都在 2014 年运行,两者都非常不同,但在 2008 年,我们看到的性能与 2014 年使用分页相同。
小智 7
这不是问题,这是设计使然,被视为性能改进。
如果您的查询没有按预期运行,您需要在数据库/应用程序的代码中解决这个问题。
您可以通过在服务器、会话或查询级别(使用OPTION (QUERYTRACEON 9481)
)使用跟踪标志 9481 来强制使用旧的肉体估计器。无论数据库的兼容性级别如何,这都会强制执行。
关于 Cardanility Estimator 的更详细的帖子以及SQL Server 2014 中围绕该过程的更改,包括示例。
归档时间: |
|
查看次数: |
3770 次 |
最近记录: |