昨天,一个客户现场人员急急忙忙打电话找我,说需要帮忙调优系统,因为经常给他们干活,所以,也就没多说什么,先了解情况,据他们说,就是他们的系统最近才出现了明显的反应迟钝问题,他们的那个系统我很了解,软硬件不会有问题,主机是顶级小机,存储也是高端存储,高度怀疑他们的应用出了问题。问他们是整个系统慢还是某个模块慢,他们也说不清楚,说这事儿前后有一个多月了,开始没这么严重,我们查了半天也没找出问题,我们的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. ASP.NET开发总结

    ASP.NET的界面可以是.aspx,会对应有一个.aspx.cs的逻辑处理文件,.aspx的所有控件对应着变量,变量名就是控件的ID. 为了代码编写方便起见,一般将数据库表的新增字段,放在最后. 日 ...

  2. git代码回滚的两种选择

    回滚到指定commit,且保持该commit之前和之后的提交记录 使用git revert命令. git revert HEAD // 回滚到前一次 commit git revert HEAD^ / ...

  3. 折腾了好久的地图缩放 ngui 各种偷懒实现

    当时找到一篇cocos2dx 地图缩放的  很遗憾我用不了  也要记录一下 免得以后用ugui可以用 转 http://blog.csdn.net/cocosnode/article/details/ ...

  4. git中 .ignore文件的配置 忽略不想上传的文件

    1.配置语法: 以斜杠“/”开头表示目录: 以星号“*”通配多个字符: 以问号“?”通配单个字符 以方括号“[]”包含单个字符的匹配列表: 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录: 此外,g ...

  5. XML_CPP_libXml2_VC6_Code_ZC

    ZC:iconv.dll.libxml2.dll.zlib1.dll 放到 exe所在目录下 1.代码来源于 帖子:XML_CPP_资料_libXml2_01_Code_ZC(?.pro) 2.代码: ...

  6. maven项目依赖jar包报 java.lang.classnotfoundexception:Type com.xx.xx.xxx not present 的解决

    今天在工作的时候遇到了这样一个奇葩的异常: java.lang.classnotfoundexception:Type com.ys.yahu.vo.file.MobileFileVo not pre ...

  7. 常用命令-python篇

    1. pip 加速命令 pip install --index-url https://pypi.douban.com/simple pip install -i https://pypi.tuna. ...

  8. 牛客网NOIP赛前集训营-提高组(第一场)A 中位数

    中位数 思路: 二分答案 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include< ...

  9. 有关C#中List排序的总结

    这里有一篇文章作者总结的就比较详细: https://blog.csdn.net/jimo_lonely/article/details/51711821 在这里只记录一点: 对list或者数组中的数 ...

  10. WIN7右键在目录当前打开命令行Cmd窗口

    Win7系统大家习惯“Win+R”的组合键打开命令提示符. 2. 通常情况下,我们点击鼠标右键是没有命令行选项的.. 3.在桌面上先按住Shift键,然后鼠标右键,出现选项“在此处打开命令窗口(W)” ...