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

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

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

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 条评论
登录 后参与评论

相关文章

来自专栏媒矿工厂

云视角下的视频编码:从虚拟化走向容器化

云计算是一种基于互联网的计算方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。在云计算环境下,软件即服务(SaaS)的虚拟化平台成为主流,视...

2688
来自专栏ThoughtWorks

云与性能测试 | 洞见

近年来,随着云计算技术的发展和各种诸如AWS、GCP、阿里云等云平台的日趋成熟,越来越多的的用户选择把系统搭建在云端,因此云测试的概念随即产生。云测试看字面意思...

3968
来自专栏阿杜的世界

【译】使用Apache Kafka构建流式数据平台(1)何为流式数据平台?

前言:前段时间接触过一个流式计算的任务,使用了阿里巴巴集团的JStorm,发现这个领域值得探索,就发现了这篇文章——Putting Apache Kafka T...

852
来自专栏IT大咖说

VMware云管平台运维管理

摘要 跨 SDDC 和多云环境从应用到基础架构的智能 IT 运维管理。与 vRealize Log Insight 和 vRealize Business fo...

3775
来自专栏CSDN技术头条

互联网中小型企业的持续集成CICD

本文来自作者 SoftwareLuke 在 GitChat 上分享 「互联网中小型企业的持续集成CICD」 互联网研发的世界里唯快不破、迭代速度往往很快。在快速...

5928
来自专栏程序你好

混合持久化让微服务如虎添翼

923
来自专栏更流畅、简洁的软件开发方式

【自然框架】之通用权限(一):简介、数据结构

      这次要写一整套的权限方面的文章了,无论我的想法好与不好,先写出来请大家来评判。这个系列我要详细的说明我的权限的思路、想法、实现方式、代码和Demo。...

1797
来自专栏张善友的专栏

托管服务引擎

托管服务引擎(Managed Services Engine, MSE)通过服务仓储对服务进行虚拟化,帮助组织快速部署服务,协调管理变化以及最大化地重用各种服务...

18810
来自专栏java一日一条

Java 程序员不容错过的开发趋势

当涉及到代码时,有很多热门话题,并且与时俱进总是潮流所向。如果你想知道如何分离糟粕和精华,那么我们已经准备就绪,只欠各位阅读下文的东风。

572
来自专栏腾讯移动品质中心TMQ的专栏

做测试计划需要考虑的方方面面

【本文系google blog翻译】 如何做测试计划书,并能有理有力的推动测试计划实施?三星手机连爆事件警醒我们质量是企业头上的一把刀,也是测试工程师头上的一...

1786

扫码关注云+社区