DBA轻松应对数据库慢查询挑战!

对于一个 DBA 来说,从公司数据库系统的稳定程度可以看出他的能力几何,一个优秀的 DBA 不仅要保证数据库的稳定运行,还需要有能力有效处理数据库的各种突发性能问题,而最常见的性能问题,就是慢查询。

我们公司规模比较大,大大小小的项目加起来超过 100 个数据库实例,而保证这些数据库的稳定运行的重任,全部在我这里,每天都需要事无巨细地逐个排查所有问题,这是一项相当艰巨的任务,出点差错是常事,造成的影响不大还好说,如果涉及到企业利益,那就祈祷下一家公司没有那么多数据库吧。

太难了

由于每个数据库实例中都存在不少的慢查询问题,靠我人肉排查显然不太现实,在尝试了很多种自动化工具之后,终于艰难玉成,让我找到一款完美解决我问题的工具:NineData 的慢查询分析功能。 它可以自动采集并记录数据库中的所有慢查询,比较亮眼的是它通过对每一条慢查询进行性能诊断,最终提供优化建议,包含添加或修改索引、调整表结构等,同时还可以根据业务类型配置 SQL 开发规范,配置完成后,系统还会基于这些规范诊断慢 SQL。

废话不多说,直接上图。

慢查询趋势图

****这是单个数据源维度的慢查询趋势图,首先能看到一个时间范围内的慢查询总量,然后可以清晰看到 12 月 8 日那天产生了很多慢查询,鼠标悬浮在曲线上可以看到详情。

NineData慢查询趋势图

慢查询统计

显示该数据库在某个阶段产生的所有慢查询的详情信息。SQL 模版表示不包含具体参数的 SQL 框架,所有使用了相同 SQL 模版的慢查询都会被记录在一个模版下,展开模版可以看到所有慢 SQL 语句,包含的信息也是非常丰富,例如执行时长、查询时间、执行查询的用户、主机名称等等。

NineData慢查询统计

诊断优化

针对慢查询的 SQL 语句进行性能诊断,性能诊断的结果包含执行时间过长、有效读较低、等待时间占比偏高、缓存命中率低下等;规范审核基于管理员配置的 SQL 开发规范对 SQL 语句进行审核;索引建议基于 CBO 成本代价模型提供索引推荐,帮助 DBA 轻松优化数据库性能。

NineData诊断优化

这个工具,对于我来说简直就是久旱逢甘霖,DBA 需要的功能,它都有了,像我这种每天加班到 22 点以后的社畜,最近也开始准点下班了。

开始准点下班了

最新更新

就在近期,他们又针对慢查询分析功能发布了数据大盘和报表下载功能。

前面说过公司有 100 多个数据库实例,并且每个实例的慢查询数量都很多...那么问题来了,如果我要治理慢查询,就需要先一个一个数据源点开,找到需要治理的数据源,再进行治理,非常费劲,而这个数据大盘,则是点睛之笔!

慢查询大盘

支持按数据源、环境、标签、数据源类型进行查看,哪个数据源产生的慢查询最多一目了然。

NineData慢查询大盘

TOP 100 数据源

由高到低展示前 100 个慢查询数量最多的数据源,单击详情即可快捷进入该数据源的慢查询页面实施治理,非常方便。

NineData显示TOP 100数据源

报表下载

这个功能在我需要将优化需求提交给开发人员的时候非常有用,在数据源慢查询详情页中可将目标时间段的所有慢 SQL 整合到一个 PDF 文档中,其中包含了所有需要整改的详情信息,以便开发人员对照优化。

NineData生成慢SQL报表下载

后记

自从用了这个工具,我每天早上来到公司,慢悠悠泡一杯咖啡,然后打开电脑登录到 NineData 的控制台,查看一下前一天的慢查询报告,几分钟后,我就全面了解到了我们公司数据库这几天的整体状况,直接就可以投入到更加核心的整改工作中,而不用和以前一样花费大量的时间和精力去排查问题了,工作效率提升非常明显。

最重要的是,这款工具的可靠性非常高,通过几天的使用,没有发生任何遗漏,每一个细小的点都会被它捕捉并呈现,老板再也不用斥巨资招 N 个 DBA 处理这些问题,终于不用再卷了。

相关推荐
ClouGence16 小时前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle
飞将19 小时前
从零实现数据库(2)——HashIndex + IndexManager
数据库
Nturmoils2 天前
订单列表慢查询,先看 WHERE、ORDER BY 和 LIMIT
数据库
渣波2 天前
拒绝 SQL 焦虑!手把手带你用 NestJS + Prisma + DTO 写出“防弹”级后端代码
javascript·数据库·后端
TrisighT3 天前
Electron 跑在鸿蒙 PC 上,单窗口和多窗口内存差 800MB?我抓了 5 组数据
性能优化·electron·harmonyos
倔强的石头_3 天前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测
数据库
倔强的石头_6 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab6 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
jump_jump6 天前
流式 HTML:从 htmx 片段装配到浏览器原生增量渲染
javascript·性能优化·前端工程化
ClouGence7 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle