DTCC大会精彩演讲『DBdoctor故障规避利器,开发阶段精准评估SQL性能大揭秘 』(文末附PPT下载)
第15届中国数据库技术大会(DTCC2024)于8月22日-24日在北京隆重召开,本次大会由IT168联合旗下ITPUB、ChinaUnix两大技术社区主办,是数据库技术领域的年度旗舰盛会。
海信聚好看数据库负责人&DBdoctor产品负责人郑祥受邀在此次大会上发表主题为《DBdoctor故障规避利器,开发阶段精准评估SQL性能大揭秘 》的精彩演讲,为与会者带来了深刻的行业洞察与宝贵经验分享。
本次主题演讲,郑祥以代码开发阶段SQL性能无法真实评估的行业难题引入,介绍数据库性能诊断工具DBdoctor如何首创SQL性能审核,创新性提出基于eBPF技术的外置Cost优化器方案,无需在生产环境中执行SQL,即可准确预估其上线后的性能表现,同时可提供全局最优索引建议。
DBdoctor如何在金融行业实践落地,并助力金融企业规避数据库性能问题?有哪些技术优势,可解决哪些数据库行业痛点?本此演讲都做了详细解读,感兴趣的小伙伴可仔细阅读本文!
以下是演讲主要内容,文末附演讲PPT和演讲视频获取方式。
一. 演讲思路
二. 数据库性能痛点
开发测试阶段如果遇到以上问题时,当前行业内数据库生态厂家也有相关解决方案,例如在开发测试阶段进行SQL审核,线上慢SQL实时审核。
行业内大多数SQL审核还是基于DBA经验的静态SQL语法规则审核,确保符合SQL编写规范,此方法具有一定效果,但还是存在性能场景覆盖不全的问题,比如传统SQL审核结果提示存在全表扫描问题,但在给出的优化建议中不能明确添加哪个索引最优,是否真实能带来提升。要想彻底解决该问题还是需要采集更多精细化的数据和提供一种有效的性能评估方案。
既然传统的方式不能彻底解决性能问题,那么有没有更优的方式?
DBdoctor基于eBPF技术+数学量化模型重新定义数据库可观测,打破传统采样或内核定制,可以采集全量SQL的完整执行过程(有更多的精细化指标数据),同时又可以做到不更改数据库源码就可实现内核可观测。
三. 技术优势
DBdoctor的理念:致力于实现DB AGI。DBdoctor的核心思路:基于eBPF技术采集探测数据库SQL的完整执行过程,采集资源消耗、锁事件、事务维度的全量SQL、Cost统计信息等更细粒度的数据,实现性能问题可量化,精准定位问题根因SQL,并提供最佳优化建议。下面我们来看下DBdoctor有哪些创新点?
创新点1:基于Cost评估性能
此部分在今年四月份举办的第二届『eBPF开发者大会』演讲中做过详细介绍,感兴趣的小伙伴可以到B站搜索【eBPF 数据库】观看郑祥相关演讲。
创新点2:外置Cost一分钟快速审核
基于eBPF的外置Cost优化器,可以不用真正执行SQL就可以评估该SQL的实际Cost消耗,推荐最小Cost的索引。
创新点3:基于eBPF采集代替传统采样
代替传统的打点采样,基于eBPF的数据库内核函数探测,代码无侵入采取细粒度指标。
探测数据库主要分为5个步骤:
1、需要熟悉内核源码,找到合适的函数进行探测
2、编写eBPF程序给函数加探针
3、当执行SQL调用到探针函数,对函数中的数据进行结构定义和存储
4、用户态从内核态的存储中读取数据,完成指标的采集
创新点4:基于eBPF重新定义可观测
此部分在第二届『eBPF开发者大会』演讲中也做过详细介绍。
创新点5:更精准的数学模型代替传统经验
通过eBPF采集到每条SQL的详细资源消耗,再结合数据库整体资源曲线,通过特征值检测、相关性、根因诊断等算法,就可以快速识别出实例资源抖动的SQL根因,代替传统经验。
创新点6:涵盖性能的SQL审核
通过自研外置COST优化器可以实现快速、精准、对线上实例无感的索引推荐。借助索引推荐进一步实现了SQL性能审核,该能力目前业界独家,可以助力开发同学在SQL上线前精准的评估SQL性能,避免问题SQL流到线上,可提前规避故障。
DBdoctor功能架构
基于以上创新点,便组合起了DBdoctor核心架构。主要包含:平台管理、主动发现问题、SQL根因分析、锁根因分析、优化建议、SQL审核、监控巡检、参数调优等功能。
企业级解决方案
DBdoctor提供企业级全方位性能诊断解决方案,包含事前发现隐患,事中精准诊断,事后随时追溯。
四. DBdoctor使用场景
场景一:SQL全生命周期管理(事前、事中、事后)
DBdoctor的SQL审核贯穿研发流程:
开发测试环境完成事前诊断:在开发测试即可完成事前精确审核,无需生产执行DDL即可评估SQL性能。
生产做到实时审核:针对慢SQL做自动审核并提供优化建议。
事后可以对问题SQL进行闭环跟踪,不遗漏任何问题。
1)代码开发如何增强SQL质量?
开发阶段可对代码进行审核,提交代码过程CI调用OpenAPI进行SQL审核,如果审核不通过会触发门禁,限制代码Merge,把控质量。
2)测试阶段如何识别SQL问题(全量SQL指纹审核)?
测试阶段会进行冒烟系统测试,全量SQL审核可做到所有SQL指纹的收集并触发审核,并以报表方式展示审核结果,包括SQL状态的分布、问题类型的分布、问题的详情、以及详细的每个SQL指纹的审核列表。针对每个问题SQL指纹可以做到闭环跟踪。
3)线上已有问题SQL诊断(慢SQL指纹审核)
线上已有问题SQL自动审核,保证线上稳定。问题SQL指纹闭环跟踪,不遗漏任何问题,针对问题SQL,提供最佳优化建议。
场景二:主动发现性能隐患(资源抖动)
基于算法特征检测自动识别资源抖动,并框选异常区间,提前发现异常并触发根因诊断,可通过性能洞察功能快速找到资源抖动的根因SQL,并推荐优化建议。
场景三:疑难问题定点排雷(内核等锁)
锁透视包括锁等待、死锁、未提交事务、长事务场景,并可按照时间区间进行锁问题汇总展示。DBdoctor基于eBPF技术采集每个事务SQL的完整执行过程,包括加锁、等锁事件。当内核发生等锁会主动触发根因诊断,锁视化可以快速找到锁问题源头,通过泳道图可以慢动作回放锁形成过程,开发同学可通过代码优化来规避锁问题发生,比如进行事务拆分、并发策略控制等完成根治,当然DBA也可以通过kill阻塞源头会话实现紧急救火。
场景四:根因诊断深度透视
从开发视角展示存在哪几个根因SQL并打上问题标签,同时可对该根因指纹SQL进行执行频率,提示产生的问题现象,提供优化建议。当然也可以点根因推导看查看详细根因SQL推导过程。
场景五:覆盖性能的深度巡检
增加深度巡检,覆盖性能的巡检,提前识别潜在问题。
四. 行业案例
下面是我们的一个银行用户案例,针对SQL审核我们提供了贯穿开发、测试、生产的全过程SQL审核解决方案,把控每一个环节做到增量SQL自动识别,问题SQL闭环跟踪,事前严控杜绝增量问题,事中实时诊断提供最优优化建议,事后随时追溯并跟踪,不遗漏任何一个问题。
为了回馈众多小伙伴的支持,DBdoctor现将:监控告警、SQL审核、巡检报表、存储诊断、SQL审计、平台管理等功能全部设置为了免费。基于免费版本的DBdoctor可以快速构建企业级性能监控与诊断平台,不限用户数,不限实例数,不限引擎,无需申请,下载即可用,零套路!
五. PPT下载&观看回放
关注『DBdoctor』公众号,回复PPT,立即获取演讲PPT!关注『DBdoctor』视频号,可观看演讲直播回放!
在线试用 立即体验: