作家
登录

程序猿是如何解决SQL Server占CPU100%的

作者: 来源: 2017-04-07 15:06:13 阅读 我要评论

看到没有,已经没有eventlog表的表扫描了。我们再来比较前后的CPU:

很明显,这个count的优化,对萌芽top的语句依然的生效的。今朝为止,这两个萌芽用上去之后,再也没有CPU过高的现象了。

其他优化手段

  • 经由过程办事端的推送,有事宜告警或者解除过来才萌芽数据库。
  • 优化上述萌芽语句,比如count(*)可以用count(0)替代
  • 优化语句,先萌芽出所有的MgrObjId,然后在做连接
  • 为治理对象、地点表等增长索引
  • 添加了索引之后,事宜表的插入就会慢,可以或许再怎么竽暌古化呢?可以分区建立索引,天天不忙的时刻,把新的记录移入到建好索引的分区

当然,这些优化的手段是后续的工作了,我要做的工作根本完了。

总结

  • 办事器CPU过高,起首查看体系过程,肯定激发CPU过高的过程
  • 经由过程SQLServer Profiler可以或许随便马虎监控到哪些SQL语句履行时光过长,消费最多的CPU
  • 经由过程SQL语句是可以查看每条SQL语句消费的CPU是若干
  • 导致CPU高的都是进行大年夜量计算的语句:包含内存排序、表扫描、编译筹划等。
  • 如不雅应用Top刷选前面几条语句,则尽量为Order By子句建立索引,如许可以削减对所有的刷选结不雅进行排序
  • 应用Count萌芽记录数时,尽量经由过程为where字句的相干字段建立索引以削减表扫描。如不雅多个表进行join操作,则把相干的表连接字段建立在包含索引中
  • 经由过程办事端通知的方法,削减SQL语句的萌芽
  • 经由过程表分区,尽量降低因为添加索引而导致表插劝道稞的影响

参考文┞仿

  • SQLSERVR语句 in和exists哪个效力高本人测试证实
  • Sql Server Cpu 100% 的常见原因及优化
  • SQLSERVER排查CPU占用高的情况
  • 人人都是 DBA(XII)萌芽信息收集脚本汇编

最后,感激博客园DBA桦仔的热情指导。

【编辑推荐】

  1. SQL Server 与 MySQL,关系型数据库范畴的“绝代双骄”
  2. SQL Server进级,真如想象中那样简单?
  3. 用于处理SQL Server安装后期问题的最佳实践
  4. 专家眷你如安在SQL Server中经由过程PowerUpSQL获得Windows主动登录暗码
  5. 若何为SQL Server 2008数据库分派用户
【义务编辑:枯木 TEL:(010)68476606】

  推荐阅读

  PHP单元测试与数据库测试

我总感到 PHP 的开辟者们并没有对 PHP 的质量有所寻求,可能是因为 PHP 的机制问题吧,让大年夜部分的开辟者总认为浏览器拜访就没有问题,所以很多时刻,做 PHP 开辟的,就没有单位测试的>>>详细阅读


本文标题:程序猿是如何解决SQL Server占CPU100%的

地址:http://www.17bianji.com/lsqh/34647.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)