数据库性能调优思路、常用分析方法

一、总体思路

拿到问题,我们可以采取横向思考和纵向思考。
横向思考就是首先判断是全局性问题还是单独SQL的问题。
纵向思考就是对交易/事务的执行路径进行诊断(从连接到执行等各个阶段进行排查,涉及事务、日志、数据的处理、以及底层服务器)

  1. 如全局级别的问题,先确定是否是数据库的问题。比如数据库负载低,又出现大面积交易性能问题,问题原因可能在数据库之外,如网络、应用容器等;同时对比同一时段上周的性能报表情况,用作对比;如数据库服务器CPU冲高,是数据库的问题的话再确定具体瓶颈原因和具体优化方案(比如扩容或分库等)。
  2. 如单独SQL问题,比如慢SQL,结合视图、监控信息、报表等中该SQL的信息,分析SQL语句的执行计划,并进行测试优化。
  3. 纵向思考,需要收集分析问题所需的信息,从连接、到事务、数据、日志、服务器等。

1.1全局级别问题-横向思路

1.1.1 cpu繁忙-TOP SQL

cpu使用率和SQL响应时间的关系是,当CPU使用率超过一定阈值(不同数据库可能不一样),SQL响应时间会大幅增加。
报表TOP SQL信息中包含 单条SQL平均CPU、平均更新数、逻辑IO,物理IO、平均运行时间等
分析各SQL CPU 使用占比,确定待优化的SQL,进入单独SQL的优化(见单独SQL)

1.1.2 I/O、锁、其他-等待事件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值