昨天,一个客户现场人员急急忙忙打电话找我,说需要帮忙调优系统,因为经常给他们干活,所以,也就没多说什么,先了解情况,据他们说,就是他们的系统最近才出现了明显的反应迟钝问题,他们的那个系统我很了解,软硬件不会有问题,主机是顶级小机,存储也是高端存储,高度怀疑他们的应用出了问题。问他们是整个系统慢还是某个模块慢,他们也说不清楚,说这事儿前后有一个多月了,开始没这么严重,我们查了半天也没找出问题,我们的dba们也一直在看,都没找到具体原因,最近我们的客户有点怒了,说根本就快不能用了,亚历山大。。。到此为止,这没法继续沟通下去了,还是自己动手,丰衣足食吧。

让他们帮忙下了典型时段的awr先看看再说,发过来后,搂了一眼,大体明白了,接着,向他们了解了相关的数据环境。

给出了方案,发了邮件。无非就是把一个过程重新改了下,认真检查了语义和逻辑,没问题,然后,他们认真核对了语义、逻辑和结果,也没问题。另外一项就是建一个索引,确认没问题后,把方案发了出去。后来各方沟通好了,最后确定,决定晚上负载低时实施方案,我负责晚上远程保障,方案实施后,他们那边说是好了很多,因为不是典型负载,和他们观察了一段时间,确认各项指标都正常后,早点休息了。

上午一上班,现场客户早早的发来了消息,说:系统反应非常快,索引有关的模块,性能提升了一千倍以上,他们的客户非常满意和高兴,他们当然更高兴。也搞不清楚他们怎么测的,精确不精确,反正解决了就好,不管了,接下来,看点资料。

让我没想到的是,他们的客户居然还抄来了一封邮件,说:硬件没升级扩容的情况下,性能居然能提升一千倍,这经验也太值得推广了。

看完邮件,回了邮件,对客户的重视和反馈表示感谢。有点感动,毕竟中间还隔着一层客户。

虽然本人觉得这次解决问题实在是太简单,简单到不好意思写,其实每次也是这种感觉,觉得没什么可写的。但毕竟这是博客,还是写下大体思路,希望对广大同行有所帮助

1、过程是个自动维护数据的过程,因为数据量较大,单表大小达到了几个T,可能出于性能的考虑,过程的作者用了循环多次对表操作。该场景太常见了,我解决的这种编程问题至少不下10次,而且,目前为止,这种编程思想似乎还在蔓延。

2、加索引,由于该表最近数据量变大很多,之前索引问题没暴露出来,现在出现了。该表索引列选择性非常好,近乎唯一。

其实,数据量是性能问题的前提,没数据,无论怎么写SQL,也不会出性能问题,数据量上来了,性能问题就出现了,很多客户性能问题都有这么个过程。

很小的两个改动,分析解决时间前后算起来不过半小时,居然能给客户解决问题,客户还给了这么正面的反馈,看来自己的工作还是很值得的。从另一个方面来说,客户并不是有些人说的怎么挑剔和难伺候,经验说明,客户还是很讲道理、容易打交道和容易满足的。如果说客户不满意,我们服务方更应该从自己的服务上多找找原因。

此外,看来国内数据库行业的应用水平,确实还有待于提高,客户能用到我们,说明我们还有价值和市场。

继续加油!!!

有史以来性价比最高最让人感动的一次数据库&SQL优化(DB & SQL TUNING)——半小时性能提升千倍的更多相关文章

  1. MS SQL数据批量备份还原(适用于MS SQL 2005+) 分类: SQL Server 数据库 2015-03-10 14:32 103人阅读 评论(0) 收藏

    我们知道通过Sql代理,可以实现数据库的定时备份功能:当数据库里的数据库很多时,备份一个数据库需要建立对应的定时作业,相对来说比较麻烦: 还好,微软自带的osql工具,比较实用,通过在命令行里里输入命 ...

  2. 云数据库POLARDB产品解读之二:如何做到高性价比

    现在做任何事情都要看投入产出比,对应到数据库上其实就是性价比.POLARDB作为一款阿里自研数据库,经常被问的问题是:性能怎么样?能不能支撑我的业务?价格贵不贵?很显然,在早期调研阶段,对稳定性.可靠 ...

  3. 千万pv大型web系统架构,学习从点滴开始

     架构,刚开始的解释是我从知乎上看到的.什么是架构?有人讲, 说架构并不是一 个很 悬 乎的 东西 , 实际 上就是一个架子 , 放一些 业务 和算法,跟我们的生活中的晾衣架很像.更抽象一点,说架构其 ...

  4. 记一次Node项目的优化

    这两天针对一个Node项目进行了一波代码层面的优化,从响应时间上看,是一次很显著的提升.一个纯粹给客户端提供接口的服务,没有涉及到页面渲染相关. 背景 首先这个项目是一个几年前的项目了,期间一直在新增 ...

  5. [转帖]AMD第三代锐龙处理器首发评测:i9已无力招架

    AMD第三代锐龙处理器首发评测:i9已无力招架 Intel 从之前的 CCX 到了 CCD 增加了缓存 改善了 ccx 之间的延迟. https://baijiahao.baidu.com/s?id= ...

  6. 一枚程序猿的MacBook M1详细体验报告

    前言 2020年11月11日双十一上午,苹果发布了M1芯片的新款Mac,其最大的变化就是将处理器从Intel换成了苹果自研的ARM芯片M1. 上一次苹果更换Mac芯片要追溯到2006年,14年前,苹果 ...

  7. [Oracle](不会的是三炮)把状态列表作为存储过程参数这件小事

    抱歉用了这么渣的标题,其实是一个很简单而且很常见的需求:假设我们有一个学生表,它有一个状态字段: create table T_STU ( STU_ID ) not null, NAME ), COD ...

  8. 转载:SqlServer数据库性能优化详解

    本文转载自:http://blog.csdn.net/andylaudotnet/article/details/1763573 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小 ...

  9. 今天无意发现jquery的一个以前的误导

    本文提供即刻提升你的脚本性能的十个步骤.不用担心,这并不是什么高深的技巧.人人皆可运用!这些技巧包括: 使用最新版本 合并.最小化脚本 用for替代each 用ID替代class选择器 给选择器指定前 ...

随机推荐

  1. new和malloc的用法和区别

    从以下几个方面总结下new和malloc的区别: 参考博客: https://blog.csdn.net/nie19940803/article/details/76358673 https://bl ...

  2. Redis的EXPIRE过期机制介绍

    概述在实际开发过程中经常会遇到一些有时效性数据,比如限时优惠活动,缓存或者验证码之类的.过了一段时间就需要删除这些数据.在关系型数据库中一般都要增加一个字段记录数据的到期时间,然后周期性地检查过期数据 ...

  3. <script src="../build/browser.min.js"></script> 是用来里面babel工具把ES6的语法转成ES5

    <!DOCTYPE html> <html> <head> <script src="../build/react.js">< ...

  4. vue-router两种模式的区别

    参考文献:https://blog.csdn.net/lla520/article/details/77894985/ https://segmentfault.com/a/1190000015123 ...

  5. Spark SQL笔记

    HDFS HDFS架构 1.Master(NameNode/NN) 对应 N个Slaves(DataNode/NN)2.一个文件会被拆分成多个块(Block)默认:128M例: 130M ==> ...

  6. RestTemplate学习

    在学习spring cloud的时候,用到了RestTemplate,找到一篇博客,写的很好,学习转载! 文章转载自:https://blog.csdn.net/itguangit/article/d ...

  7. mac显示影藏文件

    http://blog.csdn.net/xiaoyuanzhiying/article/details/46694577 然后finder强制退出,然后重启.

  8. 第 8 章 容器网络 - 056 - macvlan 网络结构分析

    macvlan 网络结构分析 macvlan 不依赖 Linux bridge,brctl show 可以确认没有创建新的 bridge. 查看一下容器 bbox1 的网络设备: 除了 lo,容器只有 ...

  9. 最小高度的树 Minimum Height Trees

    2018-09-24 12:01:38 问题描述: 问题求解: 毫无疑问的一条非常好的题目,采用的解法是逆向的BFS,也就是从叶子节点开始遍历,逐步向中心靠拢,最终留下的叶子节点就是答案. publi ...

  10. value,text,attr等区别

    1.value常和按钮一起使用,是默认的按钮上显示的文本2.html()吧该标签里面的内容全部取出来,包括里面的html标签,val()是取出表单元素的value值,text()和html()相似,但 ...