SQL Server 2012-为什么更改兼容模式会影响查询中的并行性?

时间:2018-06-25 12:32:20

标签: sql-server-2012 database-performance

上周,我们在2012 Enterprise SQL服务器上将兼容性模式从100(2008)更改为110(2012)。

从那时起,我们发现存储过程的性能从18分钟降低到48小时(在我们杀死它之前)。

我将兼容模式更改回100,并且sproc在18分钟后再次运行。从前后比较计划来看,110版本在每一步都有并行性,100版本则没有任何并行性。其他存储过程(大约50个)已经以正常速度运行。

这对我来说是一个全新的领域,为什么将兼容模式从100更改为110会导致仅一个存储过程的并行度大大提高?

1 个答案:

答案 0 :(得分:0)

更改为更高的兼容性级别可帮助sql引擎根据最新改进选择计划。因此,更改兼容性级别不是查询缓慢的主要原因。您应该使用查询提示 OPTION(MAXDOP n)查找RCA。

在更改兼容性级别之前和之后检查查询计划。更改兼容性级别后,使用查询提示检查它在MAXDOP 1上的计划,然后使用MAXDOP n检查该计划,其中n> 1(取决于服务器硬件)。

并且不要忘记分析兼容性级别已更改的查询计划。