日度归档:2019年1月2日

mssql sqlserver 导致sql脚本占用cpu过高的原因分析


摘要:
下文讲述几种可能导致sql脚本占用cpu过高的情况,如下所示:
实验环境:sql server 2008 R2



1.sql脚本编译

当一段脚本首次运行,sql引擎会对指定进行分析,并生成相应的执行计划,我们把生成执行计划的过程称之为“编译”。
在对sql脚本进行编译时,sql引擎进行各种计算和估算,使sql脚本达到最优的执行计划,此时会消耗大量的CPU。



2.排序和聚合

当数据需要排序或聚合时,此时需要将数据加载到内存中,然后进行计算,此时会消耗cpu,由于涉及计算,所以会消耗大量的CPU。
常见的聚合计算为:
sum max min count

3.table连接

表之间的连接,需要用到一些sql算法,对表之间的数据计算,然后进行连接,此时涉及运算,也会消耗大量的CPU。