背景

接到客户电话,说某系统数据库服务器CPU利用率从上午8点开始到现在基本上都是100%的情况,影响到了业务。让给看看是什么原因导致的,怎么紧急处理一下。

现象

查看CPU利用率,确实一直是90%以上的情况。

在CPU高的地方查看当时运行的语句,发现有一类语句并发量非常大,且大多数的运行状态为runnable(等待执行)。runnable代表这个会话没有资源等待,可以执行,但没有 CPU 可用,可以理解为正在等待 CPU 这项系统资源。出现这种等待,往往是系统没有足够的CPU来处理并发任务。

 

基本上可以确定导致CPU高的原因就是这条语句了。

语句内容:

 1 SELECT
2 sendtaskvi0_.idAS id1_0_,
3 sendtaskvi0_.click_urlAS click_ur2_0_,
4 sendtaskvi0_.create_timeAS create_t3_0_,
5 sendtaskvi0_.crf_nameAS crf_name4_0_,
6 sendtaskvi0_.ysmcAS ysmc37_0_
7 FROM
8 dcrf_all_**** sendtaskvi0_
9 WHERE
10 sendtaskvi0_.stage_id= @P0
11 AND sendtaskvi0_.person_id = @P1
12 AND sendtaskvi0_.plan_module_num = @P2
13 AND sendtaskvi0_.task_type = @P3
14 AND sendtaskvi0_.xh = @P4
15 AND sendtaskvi0_.table_name = @P5
16 AND sendtaskvi0_.sf_status <> @P6

dcrf_all_**** sendtaskvi0_ 为视图,定义如下图:

 

分析

通过SQL专家云智能分析,提示视图里相关的两个表并没有相应的索引,通过专家云生成的两个创建索引的脚本执行创建。

解决

创建索引后CPU得到明显下降:

活动会话数量明显下降:

 

索引的重要性

一个系统的整体缓慢往往都是因为索引问题导致的,优化索引是对系统最简单的保养。不要小看一条语句的威力,一条语句足可以让你的系统彻底无法工作,相反优化一条重要的高频语句就可以让你的系统变的流畅。

北京格瑞趋势科技有限公司是聚焦于数据服务的高新技术企业,成立于2008年,创始团队及核心技术人员来自微软和雅虎。微软数据平台金牌合作伙伴,卫宁健康数据平台战略合作伙伴。通过产品+服务双轮驱动的业务模式,14年间累计服务4000+客户,覆盖互联网、市政、交通、电信、医疗、教育、电力、制造业等各个领域。

最新文章

  1. IOS内存管理学习笔记
  2. JVM常用参数配置
  3. cas sso单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析
  4. php信用卡卡号验证函数
  5. 180行ruby代码搞定游戏2048
  6. 安装centos7注意事项
  7. 点滴的积累---J2SE学习小结
  8. Codeforces 768B Code For 1
  9. [PHP]接口请求校验的原理
  10. Snowflake(雪花算法)的JavaScript实现
  11. 第46章:MongoDB-监控应用状态
  12. git 命令使用集锦
  13. 使用h2数据库
  14. Fluent动网格【13】:网格光顺总结及实例
  15. ASP.NET Core 之 Identity
  16. _ZNote_Objective-C_用终端编译OC程序
  17. SUSE Enterprise Server 12 SP3 64 设置防火墙开放8080端口,出现Unsafe permissions for file /etc/sysconfig/SuSEfirewall2 to be sourced
  18. 安全管理中心(SOC)引导企业信息安全建设的思路
  19. Flask &amp; Vue 构建前后端分离的应用
  20. 使用for循环遍历数组元素

热门文章

  1. Springboot配置多Redis源
  2. Rust学习之旅(读书笔记):枚举 (Enum)
  3. 第三模块的下载、requests模块、openpyxl模块
  4. Python使用pipreqs生成requirements.txt
  5. kali安装拼音输入法
  6. Centos7下vim最新版本安装
  7. [深度学习] Python人脸识别库face_recognition使用教程
  8. Ynoi 数据结构题选做
  9. Java基于内存的消息队列实现
  10. react,vue中的key有什么作用?(key的内部原理)