Sql server 迁移后SQL Server 2016面临性能问题

Sql server 迁移后SQL Server 2016面临性能问题,sql-server,sql-server-2016,query-performance,Sql Server,Sql Server 2016,Query Performance,最近,我们将服务器从SQL Server 2012迁移到2016。在没有任何更改的情况下,一些查询的性能降低 如果在SQL Server 2012中运行查询,需要10秒,但在SQL Server 2016中相同的查询需要50分钟以上的时间 如果我使用Legacy CE=ON更新SQL Server 2016数据库,那么我可以很快获得与2012相同的结果。但我认为不建议在SQL Server 2016中在上使用遗留CE ALTER DATABASE SCOPED CONFIGURATION SET

最近,我们将服务器从SQL Server 2012迁移到2016。在没有任何更改的情况下,一些查询的性能降低

如果在SQL Server 2012中运行查询,需要10秒,但在SQL Server 2016中相同的查询需要50分钟以上的时间

如果我使用Legacy CE=ON更新SQL Server 2016数据库,那么我可以很快获得与2012相同的结果。但我认为不建议在SQL Server 2016中在上使用
遗留CE

ALTER DATABASE SCOPED CONFIGURATION SET
LEGACY_CARDINALITY_ESTIMATION = ON;
我还更新了所有表的统计数据,甚至认为我在执行方面确实得到了任何改进

那么,这与数据库配置问题有关吗(或者)我真的需要更新查询吗

我不确定需要检查哪些配置详细信息。你能给我一些建议吗

提前谢谢

解决方案:/

路由原因:基数估计


感谢大家。

sql2014和2016的配置是否相同,它们的硬件配置是否相同..执行计划是什么样子的可能您也在运行LEGACY_CARDINALITY_ESTIMATION=ON;在您的2014实例上?@Kris,基数估计器由数据库兼容性级别决定。请参阅:我能给出的最好建议是将这几个查询设置为使用旧的估计器“从SQL Server 2016 SP1开始,查询提示使用提示('FORCE_LEGACY_CARDINALITY_ESTIMATION')”。让它们在生产中重新工作,然后从删除此提示的角度调查问题。您也升级了数据库兼容性级别吗?更安全的做法是错开SQL Server版本和DB兼容性级别的升级。