当前位置:首页 > 报告详情

6-唯品会-唯品会在测试阶段做sql性能分析的实践及落地-梁伟项.pdf

上传人: li 编号:29793 2021-02-07 25页 17.10MB

1、SQL性能自动化测试实践 梁 伟 项 唯品会 目录 n 背景介绍 n方案整体介绍 n SQL采集模块 nSQL解析及参数替换模块 nSQL性能分析模块 n运营策略 n效果及待优化 唯品会 n背景介绍 唯品会 一条慢SQL引发的惨案 现象:2019年4月25日,商品系统某核心应用新版本上线后不到半小时出现熔断 影响:20分钟内商家管理后台无法正常使用 原因分析:慢查询导致获取DB链接失败,服务熔断 涉事SQL:select global_sku_id, xxx. from global_sku_index where del_flag=0 and barcode = 190436050899;

2、表global_sku_index当时的索引情况: 修复方案:给barcode字段添加单独索引 测试同学的解释:SQL对应的接口中有owner参数,我以为开发一定会传owner+barcode来查, 谁想到这个版本没传owner参数 唯品会 测试痛点 那你还是请那你还是请 个猴子来个猴子来 吧!吧! 这么明显的慢这么明显的慢sql你你 测试时候都没发测试时候都没发 现现?让让猴子测都能猴子测都能 发现!发现! u线上慢SQL问题特点 影响大,且容易引起系统雪崩 线下测试难发现 u线下测试难发现的原因 部分测试人员没有意识去关注 测试时间成本高,比如每次从代码提交记录中找出所有 新增和修改的sq

3、l语句就得花不少时间 在测试环境做SQL性能分析的结果参考意义不大 部分测试人员没有足够的专业能力做SQL性能分析 唯品会 n整体方案介绍 唯品会 概要介绍 本案通过向测试环境被测应用注入代码的方式收集SQL后,利用线上数据做参数替换,最后把SQL 提交到线上的SQL性能分析引擎分析,得到具有较高参考意义的分析结果和优化建议。 作用范围:mysql + java + mybatis系列,主要针对线下测试环境新增或者修改SQL语句。 序号方案特点 1应用接入简单,被测应用及测试人员无感知 2通过sql特征提取算法,去重效果良好,可有效防止SQL重复 分析 3全自动化采集和分析,风险自动邮件通知对应开发、测试负 责人 4分析结果有较高参考意义 序号分析报告内容 1当前执行计划中反馈什么风险,如做了全表扫描,使用了临时表 等 2是否存在更优的索引方式,如建议新建或者修改某个索引,或者 强行走某个

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了SQL性能自动化测试实践,包括背景介绍、方案整体介绍、SQL采集模块、SQL解析及参数替换模块、SQL性能分析模块、运营策略以及效果及待优化。背景介绍中提到了一起因慢SQL导致的系统熔断事件,指出线下测试难发现慢SQL问题。方案整体介绍概要,通过向测试环境注入代码收集SQL,利用线上数据做参数替换,最后提交到线上SQL性能分析引擎分析,得到具有较高参考意义的分析结果和优化建议。SQL采集模块通过SQL拦截Agent收集信息,环境监控模块监控测试环境是否注入Agent,SQL收集模块处理投递到队列的SQL信息。SQL解析及参数替换模块构建SQL抽象语法树,解析SQL的不同部分,并进行参数替换。SQL性能分析模块关注执行计划风险和更优索引方案分析。运营策略部分提到了方案的效果和待优化点,如参数替换后SQL不能保证百分百符合业务逻辑,SQL索引分析引擎数据抽样耗时较长等。
如何有效识别和优化慢SQL?" 如何通过自动化工具提高测试效率和准确性?" 如何结合CBO和RBO算法实现更优的索引方案?"
客服
商务合作
小程序
服务号
折叠