你是否面临新上线软件的性能问题?
我们都知道,在 DBA 所优化的数据库环境中,绝大多数性能问题其实是由于 SQL 编写不当导致的,一个开发环境中,众多的程序员难免引入一个又一个的或初级或高端的 SQL 隐患,如何去规避这些问题,减少系统上线后的运行故障呢? 什么是SQL审核? SQL审核是将 SQL 质量审核和优化这项任务,从 DB 端提取到研发端,通过擅长 SQL 的开发 DBA 和开发团队一起修正系统的 SQL,找出问题、修复问题,提升系统的健壮性和稳定性,从而保证整个系统的运维建设质量。这与近几年兴起的DevOps理念不谋而合。 对于未上线系统,通过前期的SQL审核管控,将80%的SQL问题消灭在萌生阶段,对于线上运行系统,发现和解决潜在的性能问题,可做到提前预防,防患于未然。 SQL审核的意义 SQL审核,让DBA由系统的急救医生转身成为系统的保健医生
SQL审核产品工具 - z3 云和恩墨基于Oracle数据库的SQL审核产品工具 - z3 ,通过内置的算法引擎,可定制的抓取数据库中执行的SQL及其详细数据,通过过滤分析,进行量化的积分趋势展现,并将SQL问题高亮显示,指导程序员的优化分析,并可以通过内置的工作流由DBA进行优化,变更管理同时被内置。 z3产品可服务于软件开发的全生命周期,在应用设计阶段通过审核,对不合理的表结构做变更,开发测试阶段对SQL质量严格把关,并在系统发布后进行SQL扫描,帮助DBA快速发现系统隐患及根源。 z3审核能够应用于开发库,测试库和已经上线的生产库,审核流程如下图所示: 通过z3能够找出问题SQL清单,按照设置的阀值发出预警,并对问题自动分析生成报告。这三类输出能够满足不同人员对系统的了解需求。一般来说,DBA会更关注问题SQL清单和预警,开发人员更关注问题问题SQL清单和报告,而项目经理则会偏向于关注预警和报告,这样就能使得每个人从自己能理解的维度去看待系统的问题。 这三类输出中最核心的是问题SQL清单,对于问题SQL的处理流程如下: 对于SQL审核,一般分为静态SQL审核、动态SQL审核。静态SQL审核是指直接分析未在数据库上运行的SQL代码,系统分析SQL写法和其执行计划,动态审核是指分析已经在数据库上运行的SQL。 静态SQL审核过程如下:由DBA分析问题SQL,如果合格(系统没有自动判断到业务逻辑),则忽略。如果不合格,DBA说明不合格理由,交于开发进行修改,最后再次由DBA审核。 如果审核结果不是SQL的原因而是表结构不合理导致的,则需要开发人员重新设计表结构,然后再进行测试。 使用z3的时候,需要首先将自己的数据库在z3上做好配置。如果以库为单元,则审核的总报告如下: 主要是审核对象是表,索引和应用SQL。审核的结果会以分数给出,分数越低,说明越不合格。 局部审核,重点会关注SQL。可根据审核项、SQL出现时间选择SQL,支持按照关键词查找SQL 问题SQL详情包括审核详、执行计划、访问该SQL的相关应用等情 如果是表结构的问题,表结构审核信息包括:基础信息、列、索引、主外键等 z3能够对数据字典进行细致的审核 开发、测试人员可以将问题SQL以工单形式提交给专职DBA进行审核。DBA审核开发人员提交的工单、填写审核意见、反馈给开发,开发人员根据业务需求创建表结构变更项目,可以将变更内容发布到多个开发、测试库。 创建项目时需要关联到需求所在应用系统、应用模块,选择参与项目的人员 客户案例: z3SQL审核软件现在已经在很多企业做过尝试,并取得较好的成果。 上海某金融系统的SQL问题很严重,在审核的100808条SQL 语句中,共有87248条有问题 通过z3审核,我们找到了对应发生问题最多的操作用户。 除此,检测还发现以下问题 1、系统上存在大量无用的索引。 2、未使用绑定变量的SQL导致系统中存在大量的相似SQL。 最终我们将这些问题SQL揪出来进行了重写。 共优化了780条SQL,其中500多条是改写了SQL,剩下了进行了合理的索引重设计。 完成优化后,系统性能有了明显的提升 云和恩墨的z3 SQL 审核软件已经在江苏移动,国家电网、江苏电信等十数个大型企业进行过尝试,并收到很好的效果,得到广大用户的一致认可。 云和恩墨提供的SQL审核服务总共包含以下方面:
SQL审核,让DBA走向开发前端,运维不再被动救火! 在移动互联和行业开放融合的大趋势下,云和恩墨将致力于做广大用户最忠实的数据管家,为各组织中最核心的数据资产,提供端到端的产品和服务,完成以下使命:
应用软件开发:数据建模|SQL审核和优化| 中间件服务
电子渠道(网络销售)分析系统 | 数据治理 恩墨学院 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|