注意:性能检测功能已停止维护和更新,建议你使用 数据库智能管家 DBbrain 对数据库进行性能分析和优化。
一、简介
目前如下版本实例支持此功能:
·TDSQL MySQL 版
·云数据库 MariaDB
注意:针对某些检测结论,性能检测报告提供了一系列的优化建议,请你在应用这些建议前谨慎测试,以防加重实例的性能问题。
二、功能介绍
登录 控制台,在实例列表,单击实例 ID 进入管理页,选择性能优化 > 性能检测页,可进行性能检测。
·健康评分:你可以看到当前数据库性能综合打分,满分100分;长期低于60分请注意优化业务或数据库配置。
·报告查看:你可以创建报告并查看最近一次生成的报告。
三、资源分析
分析一定时间内数据库实例资源(CPU、磁盘、连接)的使用情况,并综合评分。
注意:说明:
注意:由于多数实例默认开启了闲时超用策略,因此你可能观察到最大 CPU 使用率超过100%。如果你的 CPU 长期超过100%,且平均值高于建议值,建议你尽快扩容。
四、系统状态
梳理实例关键指标,并列举其状态、出现时间和提出对应修改建议。
五、表空间分布
列出按数据空间倒序的当前 TOP10表,协助你分析超大表情况。
六、冗余索引检测
列出当前可能的冗余索引(区分度小于1%的冗余),并提出优化建议。
注意:说明:
注意:由于查询语句要先查询索引,再通过索引去查询表,所以,如果索引列相同数据过多不利于减少筛选的数据量,反而不如直接全表扫描性能快。
七、死锁诊断
死锁诊断通过诊断show engine innodb status获取 DB 最后一次死锁信息,如果死锁发生时间在用户选择的诊断时间段内,便展示出来。
注意:说明:
注意:死锁出现频率过高代表事务内的 SQL 在并发执行场景中的持锁容易产生环路,根本解决方案是修改 SQL 运行逻辑顺序,优化加锁机制,减少死锁产生概率。临时解决方案是 kill 掉领头的阻塞会话。
八、锁等待诊断
当前时间段内的锁等待超过60s的报告。
注意:说明:
九、长会话诊断
列通过诊断 set 主 DB 中的 information_schema.processlist 获取 Command 不是 Sleep,但执行时间(Time)超过10s 的会话。
注意:说明:
注意:最佳解决长会话的手段是优化 SQL,并在业务代码中主动植入 session 失效配置,当然,你也可以通过调整interactive_timeout、wait_timeout两个参数,让过期 session 主动失效。
十、慢查询分析
基于执行次数倒序,列出当前 TOP20的慢查询语句。
注意:说明:
注意:慢查询可以通过 long_query_time 配置调整;慢查询产生的原因产生较多。通常,如果你的实例消耗资源合理且慢查询较多,则建议你关注业务 SQL、索引是否合理;如果你实例消耗性能较高且慢查询较多,建议你关注实例配置是否合理,并优化业务 SQL、索引等。慢查询数据可以在慢查询分析功能下,查询更多详细数据。
十一、DB 状态检查
检查当前数据库 DB 层的健康状态。
十二、其他
列出需要 DBA 关注的其他值。