1、基于开源SQLE的SQL质量管控方案演讲人:张沈波开源生态2数据传输项目DTLEhttps:/ 为每个业务自定义规则模版 每条规则可禁用/启用 规则参数和等级可按需调整 特殊SQL可设置白名单SQLE基础3:高效审核,无锁发布(online DDL)5审核结果分级error(必须整改)、notice(建议整改)、warn(开发建议),减少跨部门沟通成本,整改效率高审核结果去重SQLE根据SQL指纹去重,同类SQL去重展示,复审效率高审核报告下载审核报告、SQL语句均可下载,内部流转效率高无锁发布手动上线/自动上线/定时上线大表自动调用gh-ost工具实现无锁上线自动审核平台自动审核后反馈审核结
2、果,DBA复审即可,审核效率高SQLE基础4:审核上线流程可编排自定义,无缝衔接内部流程6审核与上线流程根据实际场景按需自定义,满足企业内部不同流程管理要求SQLE基础5:SQL优化,反馈优化建议,提高优化能力7DDL优化建议create database:必须加if not existscreate table:库必须存在,字段/索引/约束等不能重复,表必须加if not existsalter table:库表必须存在,字段(新增/修改)不能重复,主键只能有一个DML优化建议insert 语句必须指定columndelete/update 语句必须有limit条件delete/update
3、 语句不能有order by禁止使用全模糊搜索或左模糊搜索索引优化建议索引个数建议不超过阈值禁止将blob类型的列加入索引建议为某列增加索引索引优化流程SQL解析语法语义分析执行计划分析优化分析子查询优化分析索引优化建议建议核对形成优化建议分析:t1表200万行,c2无索引,需要回表,影响性能。建议:为c1,c2建立索引SQLE基础6:SQL分析下钻分析,提升优化效率8SQLE基础功能7:SQL工作台方便业务开发快速数据检索及了解数据库9业务开发人员安全、快速、高效数据检索SQLE与CloudBeaver集成,用户权限体系集成,双系统统一登录所有的SQL操作通过SQLE审核管控,自动拦截不合规
4、SQL,提供SQL审核建议10一般意义上的SQL审核流程以上常见功能:报表视图审核规则工单流程上线/online DDLSQL 调优下钻分析统一访问落地的痛点:1.开发配合度差提升了大量的显示工作量没有看到显示收益2.SQL审核不够全面一般只能在生产变更的时候被用到3.SQL审核是个定制化非常强的工具需要嵌入到内部系统/流程审核规则和规范有特殊性开发人员是否修改是否通过是否一致OA流程审批SQLE审核平台DBA审批SQL复查是否通过DBA执行上线修改SQLOA流程提交的上线单取消上线提交SQL系统自动给出分析结果是否否是是否否是开发人员进行对比SQL治理需要考虑SQL全生命周期需求创建代码开发
5、持续集成创建镜像测试环境部署测试UAT环境部署测试生产部署上线生产运行SQL生命周期SQL全生命周期质量管理是解决在开发、测试、发布上线、生产环境中低效SQL发现及优化遇到的问题,达到提升SQL质量的目的。开发测试生产几天,不影响生产几天或几周,影响项目周期几周或几个月,影响生产问题越早解决成本越低!几小时,不影响生产代码开发代码测试发布上线生产运维开发测试人员运维人员SQL整改效率三方统计数据显示:49.4%的数据库故障是由于SQL不规范、效率低等问题引起赋能开发:脚本/IDE审核,开发随写随审,提升开发效率12需求创建代码开发SQLE审核SQL语句SQL文件Mybatis/iBatis文件
6、审核结果/优化建议代码开发创建镜像审核上线提升效率:2个工作日SQL审核等待 分钟级完成赋能开发,拉齐开发能力,推动企业开发规范落地脚本审核:支持多种SQL文件获取方式IDE集成SQLE-Jetbrains-PluginIIDE集成审核持续集成系统能力增强:CI/CD持续集成流程自动审核可适配所有CI/CD持续集成系统代码开发代码仓库git生成制品SQLE审核CI/CD持续集成(Jenkins集成)审核上线需求创建审核通过代码提交自动BuildSQL提取SQL推送问题SQL/优化建议CI/CD持续集成系统能力增强jenkins集成无缝对接现有流程,增强持