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

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

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

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

相关文章

来自专栏Grace development

电商系统设计之购物车

上一篇文章在对于购物车业务及数据表设计中,有位童鞋在评论区与我讨论许久,特此独立一篇文章来详解下我的想法及我为什么这么做,以下为在业务层面、逻辑层面、未来功能的...

3172
来自专栏PingCAP的专栏

TiDB 帮助万达网络科技集团实现高性能高质量的实时风控平台

万达网络科技集团 是中国唯一的实业+互联网大型开放型平台公司,拥有飞凡信息、快钱支付、征信、网络信贷、大数据等公司,运用大数据、云计算、人工智能、场景应用等技术...

1091
来自专栏牛客网

滴滴后台开发岗位面经,献给春招的帅哥美女!

部门:基础架构部门 岗位:java后台研发 地点:杭州 面试总共有三面 一面: 项目,springioc 源码,spring生明式事物  源码分析,jvm调优,...

3458
来自专栏数据和云

SQL 审核 - z3 产品理念与功能介绍

我们都知道,在 DBA 所优化的数据库环境中,绝大多数性能问题其实是由于 SQL 编写不当导致的,一个开发环境中,众多的程序员难免引入一个又一个的或初级或高端的...

3217
来自专栏WeTest质量开放平台团队的专栏

【干货预警】kafka+sparkstreaming搭建流计算引擎

周期性拉取增量时间段内,各词在各渠道内的索引数据,然后进行分时频次统计,复杂度:如果词库大小增长到10w,渠道数达到5000,那么就需要5亿次/轮的索引查询开销...

1083
来自专栏包子铺里聊IT

Facebook 的技术故事

如同每一个大型IT公司,Facebook 的技术架构演化史也是极为丰富。和 Google 一切 Infrastructure 从零研发的策略不同,最初的 Fac...

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

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

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

3424
来自专栏Java学习网

我是如何准备技术面试的

我是如何准备技术面试的 前拿到的知名公司的offer是腾讯和新美大(大众点评、美团)。一直想写一篇面经分享给大家,但因为一些琐碎的事情,就一直耽误着。 今天就...

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

巡检服务的重要性

很早就计划做一个系统的巡检项目,我所说的这个巡检和咱们通常意义上理解的巡检完全不一样。这个巡检是面向业务同学的,简而言之,目标就是让业务同学看得懂的巡检。

1773
来自专栏数据和云

2016数据库大会访谈:杨廷琨谈环境变化优秀DBA会抬头看路

随着科技飞速发展,软硬件技术更新换代,数据库领域也在不断发生着变化,传统数据库与新技术的结合、数据库的云化等等。改变是为了更好的生存发展,数据库...

2754

扫码关注云+社区