<< 返回文章列表

SQL审核|性能优化 为什么用尽了办法你的系统性能还是不见改善

2017年12月19日
孙雪
2252

【云和恩墨,提供7*24最专业的数据恢复(Oracle,MySQL,SQL server)服务,致力于为您的数据库系统做最后一道安全防护!服务热线:010-59007017-7030】数据恢复|数据库运维|性能优化|安全保障|Oracle培训|MySQL培训


随着业务数据的增长,以及新业务的推出,很多企业都面临着系统性能的问题,并且日益凸显。我们曾遇到很多这样的用户,似乎用尽了所有招数,但性能就是不见改善,问题到底出在哪里?

image.png


我们先来看看这些用户到底做了些什么样的尝试:


1、土豪式方案

有用户表示,之前系统一直显示内存不足,磁盘空间也经常不够用,每次业务高峰就故障,后来申请增加了内存空间,并换了高性能大容量的存储,一开始很管用,慢慢地老问题又出现了,这是怎么了?

2、妥协式方案

新上线了业务系统性能不佳,怎么办呢?我们来玩打游击。把一些不重要的业务放在晚上运行,调整新业务的功能模块,或者暂时不做数据同步等。

3、纠结式方案

性能不佳? 看看网络有没有问题呢,有的话就改;是不是存储的问题呢,有问题就换;运维人员有没有问题呢,服务商也随意招;但要谁来承担责任呢,每次遇到严重的故障,几大服务商便开始抓阄。


坦白说,以上方案你是不是都做过了,或者做过其中的一些?


为什么没有起作用?以上方案都有什么问题?


第一种,我只能说,有钱就是任性。但系统总是比我们更任性。


第二种,这种方式虽有作用,但总不能治本,并没有解决任何问题只是逃避。


第三种,嗯,这样的用户特别多。有困难就提问是好的,敢于质疑一切,但唯独少问了一个问题,是不是应用设计的问题呢?


这样问并不是没有道理的。


现实中,很多运维人员都很拼命地在保障系统高效运行,然而事后的SQL优化和救火已经不能满足今天业务快速发展和高可用连续性的需求。因为根据我们统计,80%的系统性能问题来自应用SQL书写不规范。而运维人员由于不了解系统的应用也看不到底层的逻辑,因此遇到问题也只能做些边缘的尝试。


image.png


纵观各个企业,面临业务的压力,系统上线周期变短,测试时间被压缩,很多应用代码中的SQL未经审核就直接上线了,或者审核方式低效,低质,流于形式,这导致了很多系统上线后,面临各类性能问题,不仅给运维带来很多压力,也在一定程度上影响了用户体验。


只有从源头上控制住应用系统的质量,才能避免上线后因低质量代码导致应用系统性能问题甚至是性能故障,保障业务的稳健。


什么是SQL审核?


SQL审核是将 SQL 质量审核和优化这项任务,从 DB 端提取到研发端,通过擅长 SQL 的开发 DBA 和开发团队一起修正系统的 SQL,找出问题、修复问题,提升系统的健壮性和稳定性,从而保证整个系统的运维建设质量。

image.png

对于未上线系统,通过前期的SQL审核管控,将80%的SQL问题消灭在萌生阶段。

对于线上运行系统,发现和解决潜在的性能问题,可做到提前预防,防患于未然。


然而这些还不够。。。


为了更好地服务广大用户,拯救拼了命也不能让领导满意的运维人员,云和恩墨SQL 审核产品 z3 不断推出新版本,以更强大,更人性化,更快速便捷的方式提供服务。这也是DevOps时代,数据库运维和开发融合的最佳方向和实践。


首先我们来一览各个版本的新特性。


image.png


从v2.0版本开始,推出了以下新功能:


1、多数据库支持:支持审核Oracle库的SQL、MySQL库的SQL;


2、SQL智能聚合:支持按照执行计划、规则集智能聚合问题SQL,大大减少了处理问题的工作量;


3、自动优化建议:增加问题整改建议,给用户提供初步的问题优化方向;


4、12c 版本支持:完美支持 Oracle 12C 多租户架构。



到v2.2版本,支持的功能将更强大,尤其是针对静态SQL审核。


1、支持直接审核Mybatis的SQL文件: 


用户可以将Mybatis框架的SQL代码文件上传到MZ3里进行分析,无需手工整理SQL,可大大提高SQL代码审核效率。 


image.png


2、支持导出SQL分析报告: 


用户可以将SQL分析结果下载导出,方便与他人协作。


image.png


SQL分析报告样 : 


image.png


Mybatis与Hibernate的百度指数趋势对 : 


image.png


SQL审核,让DBA由系统的急救医生转身成为系统的保健医生


1、DBA参与应用代码开发测试过程:给开发人员提供专业的数据库开发及优化建议

2、优化前置:在应用代码上线前根据业务需求设计高效的SQL、索引

3、控制变更风险:预先评估应用开发中表结构变更、SQL变更对运行中应用的影响,确定合适的变更窗口,变更方案。


怎么才能证明z3真的能帮到你呢?(大家都说好,你值得信赖)

z3SQL审核软件现在已经在很多企业做过尝试,并取得较好的成果。

 

上海某金融系统的SQL问题很严重,在审核的100808条SQL 语句中,共有87248条有问题


image.png


通过z3审核,我们找到了对应发生问题最多的操作用户。


image.png


除此,检测还发现以下问题:


image.png
1、系统上存在大量无用的索引


image.png

2F

未绑定变量导致系统中存在大量相似SQL


image.png


最终我们将这些问题SQL揪出来进行了重写


image.png


共优化了780条SQL,其中500多条是改写了SQL,剩下了进行了合理的索引重设计。


完成优化后,系统性能有了明显的提升


image.png


云和恩墨的z3 SQL 审核软件已经在江苏移动,国家电网、江苏电信等十数个大型企业进行过尝试,并收到很好的效果,得到广大用户的一致认可。



image.png


云和恩墨提供的SQL审核服务总共包含以下方面:


1、SQL审核工具部署:部署自动化工具、监控、跟踪数据库SQL性能

2、SQL开发标准制定:参与SQL代码开发规范得到制定,为开发人员提供科学可靠的SQL开发方法

3、SQL核心对象审核:通过对业务的了解,针对SQL访问的表和索引提供对应的设计、改进建议,确保需要访问的表和索引能够与开发人员的SQL代码及业务需求相配合,通过最佳执行计划提升SQL性能

4、SQL代码审核:通过开发代码与性能测试环节进行SQL捕获并审核,给出相应的SQL优化分析和改写建议,并反馈指导开发环节。

5、SQL审核评分:在SQL审核与核心对象审核完成后,将审核结果导入SQL审核评分系统,对无索引、笛卡尔积、没有使用绑定变量、查询条件与列类型不匹配等各类低效的SQL问题,计算出系统SQL应用的健康分值。


image.png


天呐,说得我自己都心动了。好想赶紧找一本白皮书来一览最新版本的功能。


点击阅读原文,立即获取z3最新版产品白皮书,限时开放,机不可失!


更多详情,请点击:SQL审核-让DBA走向开发前端


SQL审核,让DBA走向开发前端,运维不再被动救火!