这是典范的获取数据并分页的数据,一条获取最新分页记录总数,一条获取分页记录,恰是获取最新事宜这里导致的CPU过高。这里的营业大年夜概是每个客户端,每3秒履行一次数据库查找,以便显示最新的告警事宜。好了,元凶找到了,怎么解决?
有哪些SQL语句会导致CPU过高?
上彀查看了下文┞仿,得出以下结论:
1.编译和重编译
编译是 Sql Server 为指令生成履行筹划的过程。Sql Server 要分析指令要做的工作,分析它所要拜访的表格构造,也就是生成履行筹划的过程。这个过程主如果在做各类计算,所以CPU 应用比较集中的处所。
履行筹划生成后会被缓存在 内存中,以便重用。然则不是所有的都可以 被重用。在很多时刻,因为数据量产生了变更,或者数据构造产生了变更,同样一句话履行,就要重编译。
在萌芽的时刻,经常会做 order by、distinct 如许的操作,也会做 avg、sum、max、min 如许的聚合计算,在数据已经被加载到内存后,就要应用CPU把这些计举动当作完。所以这些操作的语句CPU 应用量会多一些。
3.表格连接(Join)操作
当语句须要两张表做连接的时刻,SQLServer 经常会选择 Nested Loop 或 Hash 算法。算法的完成要运行 CPU,所以 join 有时刻也会带来 CPU 应用比较集中的处所。
4.Count(*) 语句履行的过于频繁
大年夜致的原因,我们都知道了,然则具体到我们上述的两个SQL,似乎都有上述提到的┞封些问题,那么到底哪个擦?鲱大年夜的元凶,我们可以或许怎么竽暌古化?
推荐阅读
我总感到 PHP 的开辟者们并没有对 PHP 的质量有所寻求,可能是因为 PHP 的机制问题吧,让大年夜部分的开辟者总认为浏览器拜访就没有问题,所以很多时刻,做 PHP 开辟的,就没有单位测试的>>>详细阅读
本文标题:程序猿是如何解决SQL Server占CPU100%的
地址:http://www.17bianji.com/lsqh/34647.html
1/2 1