慢SQL分析

背景

1.性能测试中经常会出现数据库CPU满的情况,从而引发性能问题,本实践针对数据库慢SQL分析后进行调优,优化其性能。
2.对于数据库来说,常见的瓶颈问题大多是CPU利用率过高,其中数据库缺失索引是影响数据库性能的主要因素。
3.实际性能测试过程中需要关注每一个接口的性能情况,数据库性能对于系统整体性能有着不可或缺的影响,当数据库中某SQL缺失索引或查询存在慢SQL时,调用接口查询该表会产生耗时久以至于超时的现象,会严重印影响到接口的性能。因此,如何发现这些慢SQL、问题SQL,提高数据库及系统的性能,是测试过程中一项有意义的工作。

实践过程描述

分析思路
(1)删除常用表XX的一个索引,例如一个列名
(2)压测前先清空各个节点数据库动态视图
(3)创建个任务同步压测一段时间
(4)将数据库各个节点动态视图缓存的走全表扫描SQL导出,按照执行次数降序,筛选出TOP10条执行次数多的SQL进行分析,同时关注数据库服务器的CPU使用率,发现数据库CPU使用率持续在100%,初步判断是查询数据库走全表扫描时,数据量过大且未走索引导致。

SQL语句分析过程
(1)优先分析表中执行次数多并且平均执行时间长的SQL
(2)先统计目标表的数据量是否多
(3)再查看本条SQL的执行计划,看是否走了全表扫描,是否CPU耗费很大
(4)再查看该表的索引,结合SQL语句分析where字段后的查询条件,看是否缺失这个字段的索引
分析结果
(1)查询XX表走了全表扫描,统计这个表有XX条数据,没有走索引,因为数据量大,耗时长,所以有性能问题。
(2)根据此条SQL中的查询条件,对照XX表的索引,发现缺失某字段这个索引,是导致CPU满的原因之一。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值