DBA必备!如何使用DBdoctor进行索引推荐

news2025/7/19 6:48:18

近期,一些用户在安装DBdoctor并完成实例纳管后,常在DBdoctor概览页面或实例性能洞察页面看到索引推荐的相关信息,他们对这些信息的来源、索引推荐的触发场景以及实现流程等比较关注,也想了解是否存在其他能够触发索引推荐的场景。

索引推荐流程

索引推荐触发场景主要分为以下几类:

IO异常根因SQL索引推荐、CPU异常根因SQL索引推荐、慢查询SQL索引推荐、用户手动输入索引推荐。

DBdoctor会监听这些事件,并进行相关索引推荐,详细流程如下:

图片

  1. 针对各个索引推荐场景,DBdoctor将这些任务收集后创建调度任务,进而并发索引分析,可用最快的速度让用户看到结果。

  2. 通过SqlParse对SQL进行解析分析,获取SQL中用到的相关表和列等信息。

  3. 基于eBPF收集原实例中真实统计信息,并通过外置的Cost优化器得出各个索引组合的Cost。

  4. 选择最小的Cost的索引(不存在该索引即最优推荐)。

哪些场景会触发索引推荐?

场景一: 当我们业务代码开发完成,针对一些特殊的SQL,可能会担心是否会导致SQL性能问题,当前索引在性能上是否能够HOLD住,这时我们可以通过DBdoctor SQL审核功能进行索引验证【菜单路径:实例诊断->SQL审核】。

图片

通过SQL审核功能,我们可以手动输入需要分析的SQL,点击提交审核,审核成功后,我们可以在详情页面看到数据库下,当前SQL执行时走的哪个索引,扫描多少行,是否为最优索引,以及DBdoctor推荐的最优索引。

场景二:当我们的服务已经上线,可以通过DBdoctor观察线上是否存在慢SQL,以及该慢SQL是否有必要进行索引优化,这时我们可以在DBdoctor 【实例诊断->性能洞察->SQL关联分析】下找到解决方案。

图片

如上图所示,我们发现线上存在delete慢SQL,我们通过点击执行计划,可以查看当前执行的是全表扫描且并未添加索引,此时系统会将该慢SQL进行索引推荐,待我们下次进入该页面时,即可看到最新的索引推荐信息。DBdoctor推荐将start_time添加索引,性能可直接提升上万倍!

场景三:当线上服务异常告警,服务响应变慢等异常场景下,我们同样可以通过DBdoctor来判断是否因SQL未能添加最优索引而导致的服务性能问题,这时我们可以通过【实例诊断->性能洞察】来找到对应解决方案。

图片

通过上图,我们可以看到CPU存在一个抖动点,这个抖动点通过DBdoctor算法诊断模型可直接分析出根因SQL。该问题是由一条普通的查询SQL引起的,通过查询数据库,我们看到当前查询条件使用的字段并未增加索引,导致大量消耗CPU异常,DBdoctor可以准确抓取该异常点,并成功推荐索引,通过Cost值对比,索引优化性能提升巨大。

场景四:作为运维或者DBA,特别是在节假日,数据库巡检必不可少,那针对索引推荐是否能通过全局视角查看所有实例,并汇总统计出哪些SQL需要进行索引优化?答案是肯定的,在【Dashboard概览】页面我们能够看到当前租户项目下的所有实例,存在哪几条SQL需要优化,并给出优化建议。

图片

当然,我们也可以在实例【性能诊断->索引推荐】页面查看当前实例有哪几条SQL需要优化,并查看优化建议。该页面也汇总了按库表维度的DDL聚合,支持索引详情查看,方便DBA快速低消耗执行DDL变更索引。

图片

总结

DBdoctor的索引推荐功能包括在代码上线前进行SQL审核和推荐,事中识别主要根因SQL并提供推荐,以及事后的紧急处理并给出优化建议。通过我们的介绍,您应该对索引推荐可能出现的场景以及整体的运作流程有了进一步了解。现在就使用DBdoctor,看看您的SQL是否有优化提升的空间吧!

图片

图片

DBdoctor推出长久免费版

DBdoctor是一款企业级数据库全方位性能监控与诊断平台,致力于解决一切数据库性能问题。可以对商业数据库、开源数据库、国产数据库进行统一性能诊断。具备:SQL审核巡检报表监控告警存储诊断审计日志权限管理等免费功能,不限实例个数,可基于长久免费版快速搭建企业级数据库监控诊断平台。同时拥有:性能洞察、锁分析、根因诊断、索引推荐、SQL发布前性能评估等高阶功能,官网可快速下载,零依赖,一分钟快速一键部署。如果您想要试用全部功能可添加公众号自助申请专业版license。成为企业用户可获得产品定制、OpenAPI集成、一对一专家等高阶服务。迎添加小助手微信了解详细信息!

1️⃣ 产品介绍:

内核级数据库性能诊断工具DBdoctor

2️⃣免费下载/在线试用:

https://dbdoctor.hisensecloud.com/col.jsp?id=126

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1822373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Hive中篇: 一篇文章带你了解表的静态分区,动态分区! 分桶!Hive sql的内置函数!复杂数据类型!hive的简单查询语句!】

前言: 💞💞大家好,我是书生♡,本篇文章主要分享的是大数据开发中hive的相关技术,表的静态分区,动态分区,分桶!Hive sql的内置函数!复杂数据类型!以…

优雅谈大模型11:Mistral

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技(Mamba,xLSTM,KAN)则提…

android studio4.1后不能ButterKnife

麻蛋L最近发现 android studio不能使用ButterKnife啦!ButterKnife Injections不维护,butterknife Zelezny也不维护!!!日…难受,兄弟们换下一家:IDsCreate,一毛一样的好用&#xff01…

2024年计算机科学与电子信息工程国际会议(ICSEIE 2024)

2024 International Conference on Computer Science and Electronic Information Engineering 【1】大会信息 会议简称:ICSEIE 2024 大会时间:2024-07-19 大会地点:中国苏州 截稿时间:2024-07-05(以官网为准) 审稿通…

git提交错了?别慌,直接删除提交记录

git revert 和git reset !这两个命令都有撤销操作的功能!哪一个可以删除提提交记录??? 使用git revert撤销提交 revert的英文释义是回复、恢复(到原来的状态) 作用 git revert 是 Git 中用于撤…

IntelliJ IDEA 用maven创建web项目

前言 已经安装并配置好Tomcat。具体步骤:Tomcat安装及环境变量配置(一看就会)-CSDN博客​编辑https://blog.csdn.net/longyongyyds/article/details/135825647 具体步骤 1.新建一个maven项目 2,配置好tomcat服务器 3.运行测试一下 maven教程&#xf…

搜维尔科技:特斯拉称工厂内有两台人形机器人开始自主工作

搜维尔科技消息,据外电报道,特斯拉声称,其目前拥有两台 Optimus 人形机器人在工厂内自主工作,这尚属首次。 如果目前这场薪酬方案混乱有什么好处的话,那就是特斯拉几乎看起来又有了一个公关部门。 当然,其…

3d模型文件格式有那些,什么区别?---模大狮模型网

3D模型文件格式有很多种,每种格式都有其特点和应用场景。常见的3D模型文件格式包括OBJ、FBX、STL、3DS、DAE等,下面将逐一介绍这些格式的区别。 1. OBJ格式:OBJ是一种开放的3D模型文件格式,可以被几乎所有的3D软件所支持。OBJ格式…

Linux:线程概念 线程控制

Linux:线程概念 & 线程控制 线程概念轻量级进程 LWP页表 线程控制POSIX 线程库 - ptherad线程创建pthread_createpthread_self 线程退出pthread_exitpthread_cancelpthread_joinpthread_detach 线程架构线程与地址空间线程与pthread动态库 线程的优缺点 线程概念…

笔记98:按列压缩矩阵 csc_matrix 的 “含义”

1. 如何按列压缩矩阵: 注:按列压缩(Compressed Sparse Column -- CSC),是一种使用三个特征数组就可以表示整个矩阵的方法; 标准二次规划问题 :状态量:矩阵:向量&#xff…

11_从注意力机制到序列处理的革命:Transformer原理详解

1.1 简介 Transformer是一种深度学习模型,主要用于处理序列数据,尤其是自然语言处理任务,如机器翻译、文本摘要等。该模型由Vaswani等人在2017年的论文《Attention is All You Need》中首次提出,它的出现极大地推动了自然语言处理…

确定性网络_v0

目录 一、背景二、技术参考文献 一、背景 确定性网络(Deterministic Networking)是提供确定性服务质量的网络技术,是在以太网的基础上为多种业务提供端到端确定性服务质量保障的一种新技术。通过对网络数据转发行为的控制,将时延…

Ubuntu系统设置中文输入法

重新设置超级用户权限(root)密码(非必要) sudo passwd root 需要注意的是Ubuntu的root密码不能少于8个字符 设置成功后输入命令和新的密码即可无需输入sudo启用root命令 su - 更新软件包列表 sudo apt update sudo apt upgrade 安装fcitx5输入法框架 个别情况需要卸载旧的…

陪诊小程序开发,陪诊师在线接单

近几年,陪诊师成为了一个新兴行业,在科技时代中,陪诊小程序作为互联网下的产物,为陪诊市场带来了更多的便利。 当下生活压力大,老龄化逐渐严重,年轻人很难做到陪同家属看病。此外,就诊中出现了…

【Hive下篇: 一篇文章带你了解表的静态分区,动态分区! 分桶!Hive sql的内置函数!复杂数据类型!hive的简单查询语句!】

前言: 💞💞大家好,我是书生♡,本篇文章主要分享的是大数据开发中hive的相关技术。连接查询!正则表达式! 虚拟列!爆炸函数!行列转换! Hive的数据压缩和数据存储…

怎么提升机器人外呼的转化效率

在某些情况下,如市场调查、产品推广等,语音机器人可以高效地完成大量的呼叫任务,并能通过预设的语音脚本和智能识别功能,初步筛选和分类潜在客户。此时,不转人工可能更为高效和经济。 然而,在一些需要深度沟…

kettle从入门到精通 第六十九课 ETL之kettle kettle cdc mysql,轻松实现增量同步

1、之前kettle cdc mysql的时候使用的方案是canalkafkakettle,今天我们一起学习下使用kettle的插件Debezium直接cdc mysql。 注:CDC (Change Data Capture) 是一种技术,用于捕获和同步数据库中的更改。 1)Debezium步骤解析mysql b…

喜讯:NetMarvel 深度合作伙伴「点金石」斩获2024·MAMA 营销增长奖

全球市场瞬息万变,如何让增长做到有迹可循? 5月20日,由 AppsFlyer 举办的「2024 MAMA 移动互联网高层峰会」在三亚拉开序幕。在本届颁奖典礼上,NetMarvel 深度合作伙伴——点金石(GameGoing) 荣获「营销增长…

为什么要进行数据库设计?

本文介绍数据库设计的定义、知识要求和设计的内容。 01、数据库设计的定义和知识要求 数据库设计是指对于一个给定的应用环境,根据用户的需求,在某一具体的数据库管理系统上,构造一个性能良好的数据模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的信…

从 PERL 脚本获取输出并将其加载到 MySQL 数据库的解决方案

1、问题背景 有一段 Python 脚本可以调用 Perl 脚本来解析文件,解析后,Perl 脚本会生成一个输出,这个输出将被加载到 Python 脚本中的 MySQL 数据库中。Python 脚本如下: pipe subprocess.Popen(["perl", "./pa…