为什么用尽了办法你的系统性能还是不见改善

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

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

1

土豪式方案

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

2

妥协式方案

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

3

纠结式方案

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

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

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

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

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

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

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

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

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

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

什么是SQL审核?

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

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

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

然而这些还不够。。。

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

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

从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代码审核效率。

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

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

SQL分析报告样 :

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

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

1、DBA参与应用代码开发测试过程:给开发人员提供专业的数据库开发及优化建议 2、优化前置:在应用代码上线前根据业务需求设计高效的SQL、索引 3、控制变更风险:预先评估应用开发中表结构变更、SQL变更对运行中应用的影响,确定合适的变更窗口,变更方案。

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

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

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

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

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

1F

系统上存在大量无用的索引

2F

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

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

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

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

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

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

1、SQL审核工具部署:部署自动化工具、监控、跟踪数据库SQL性能 2、SQL开发标准制定:参与SQL代码开发规范得到制定,为开发人员提供科学可靠的SQL开发方法 3、SQL核心对象审核:通过对业务的了解,针对SQL访问的表和索引提供对应的设计、改进建议,确保需要访问的表和索引能够与开发人员的SQL代码及业务需求相配合,通过最佳执行计划提升SQL性能 4、SQL代码审核:通过开发代码与性能测试环节进行SQL捕获并审核,给出相应的SQL优化分析和改写建议,并反馈指导开发环节。 5、SQL审核评分:在SQL审核与核心对象审核完成后,将审核结果导入SQL审核评分系统,对无索引、笛卡尔积、没有使用绑定变量、查询条件与列类型不匹配等各类低效的SQL问题,计算出系统SQL应用的健康分值。

文字已经不能表达我的激动之情,直接上图来看最新版的功能清单

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

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2017-08-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

调需式优化的简单实践 (r10笔记第1天)

作为DBA总是会有现场的救火工作,而如果尽可能早一些介入需求,设计,开发阶段,可能就会杜绝很多潜在的性能问题。很多问题都是如此,都是逐步积累,最终在某一...

3254
来自专栏织云平台团队的专栏

运维如何为公司节省一个亿:精细化容量管理的设备成本优化之路

SNG 社交网络运营部管理着近10万台的 Linux 服务器,以此支撑着腾讯社交业务海量业务与用户,如日活2.47亿的 QQ 、月活5.96亿的 QQ 空间(数...

1.5K1
来自专栏DevOps时代的专栏

基于DevOps、微服务以及k8s的高可用架构探索与实现

前言 本文给大家分享的题目是《基于DevOps、微服务以及K8S的高可用架构探索与实现》。整个企业的高可用架构面临很多的挑战,面向微服务、容器化以及敏态交付,是...

2538
来自专栏腾讯云技术沙龙

陈新宇:CKafka在人脸识别PAAS中的应用

我叫陈新宇,在格灵深瞳负责数据流的研发,首先特别感谢如今老师,他们把Kafka一个优秀的消息中间件写出来,也感谢腾讯云做了调优工作,现在就该到我们这些做应用的人...

9245
来自专栏我是攻城师

Java,传奇的一生!

3207
来自专栏PingCAP的专栏

TiDB 在 G7 的实践和未来

2010 年,G7 正式为物流运输行业提供面向车队管理的 SaaS 服务,经过持续创新,通过软硬一体化的产品技术能力,致力于数字化每一辆货车,以实时感知技术创造...

2365
来自专栏JavaQ

我的Java开发之路

最近有一位小伙伴通过公众号给我留言, “我参加工作没多久,看着圈里的技术大牛,特别羡慕,也渴望成为技术大牛,想让您分享一下从小白到大牛是怎样练成的,我该如何提...

3968
来自专栏数据派THU

【数据蒋堂】功夫都在报表外--漫谈报表性能优化

来源:润乾软件 作者:蒋步星 编辑:刘晴敏 本文字数为2219字,建议阅读6分钟 本文由蒋步星讲述了报表性能优化的问题。 应用系统中的报表,作为面向业务用户的窗...

2449
来自专栏腾讯大数据的专栏

揭秘腾讯大数据之平台综述篇

4月12日,在腾讯分享日的大数据分论坛上,腾讯首次对外展现了自己的大数据平台,受到外界的普遍关注,后续,我们将持续为大家分享腾讯大数据的方方面面。...

1825
来自专栏黄希彤的专栏

就算云厂商水逆了,服务也不能倒

这阵子接连发生极小概率事件:先是几条光缆同时被挖断导致一个服务区失联、然后又是一个硬盘出现罕见的静默错误(写入数据和读取出来的不一致)后居然被选中为主数据源导致...

1.9K11

扫描关注云+社区