有史以来性价比最高最让人感动的一次数据库&SQL优化(DB & SQL TUNING)——半小时性能提升千倍
昨天,一个客户现场人员急急忙忙打电话找我,说需要帮忙调优系统,因为经常给他们干活,所以,也就没多说什么,先了解情况,据他们说,就是他们的系统最近才出现了明显的反应迟钝问题,他们的那个系统我很了解,软硬件不会有问题,主机是顶级小机,存储也是高端存储,高度怀疑他们的应用出了问题。问他们是整个系统慢还是某个模块慢,他们也说不清楚,说这事儿前后有一个多月了,开始没这么严重,我们查了半天也没找出问题,我们的dba们也一直在看,都没找到具体原因,最近我们的客户有点怒了,说根本就快不能用了,亚历山大。。。到此为止,这没法继续沟通下去了,还是自己动手,丰衣足食吧。
让他们帮忙下了典型时段的awr先看看再说,发过来后,搂了一眼,大体明白了,接着,向他们了解了相关的数据环境。
给出了方案,发了邮件。无非就是把一个过程重新改了下,认真检查了语义和逻辑,没问题,然后,他们认真核对了语义、逻辑和结果,也没问题。另外一项就是建一个索引,确认没问题后,把方案发了出去。后来各方沟通好了,最后确定,决定晚上负载低时实施方案,我负责晚上远程保障,方案实施后,他们那边说是好了很多,因为不是典型负载,和他们观察了一段时间,确认各项指标都正常后,早点休息了。
上午一上班,现场客户早早的发来了消息,说:系统反应非常快,索引有关的模块,性能提升了一千倍以上,他们的客户非常满意和高兴,他们当然更高兴。也搞不清楚他们怎么测的,精确不精确,反正解决了就好,不管了,接下来,看点资料。
让我没想到的是,他们的客户居然还抄来了一封邮件,说:硬件没升级扩容的情况下,性能居然能提升一千倍,这经验也太值得推广了。
看完邮件,回了邮件,对客户的重视和反馈表示感谢。有点感动,毕竟中间还隔着一层客户。
虽然本人觉得这次解决问题实在是太简单,简单到不好意思写,其实每次也是这种感觉,觉得没什么可写的。但毕竟这是博客,还是写下大体思路,希望对广大同行有所帮助
1、过程是个自动维护数据的过程,因为数据量较大,单表大小达到了几个T,可能出于性能的考虑,过程的作者用了循环多次对表操作。该场景太常见了,我解决的这种编程问题至少不下10次,而且,目前为止,这种编程思想似乎还在蔓延。
2、加索引,由于该表最近数据量变大很多,之前索引问题没暴露出来,现在出现了。该表索引列选择性非常好,近乎唯一。
其实,数据量是性能问题的前提,没数据,无论怎么写SQL,也不会出性能问题,数据量上来了,性能问题就出现了,很多客户性能问题都有这么个过程。
很小的两个改动,分析解决时间前后算起来不过半小时,居然能给客户解决问题,客户还给了这么正面的反馈,看来自己的工作还是很值得的。从另一个方面来说,客户并不是有些人说的怎么挑剔和难伺候,经验说明,客户还是很讲道理、容易打交道和容易满足的。如果说客户不满意,我们服务方更应该从自己的服务上多找找原因。
此外,看来国内数据库行业的应用水平,确实还有待于提高,客户能用到我们,说明我们还有价值和市场。
继续加油!!!
有史以来性价比最高最让人感动的一次数据库&SQL优化(DB & SQL TUNING)——半小时性能提升千倍的更多相关文章
- MS SQL数据批量备份还原(适用于MS SQL 2005+) 分类: SQL Server 数据库 2015-03-10 14:32 103人阅读 评论(0) 收藏
我们知道通过Sql代理,可以实现数据库的定时备份功能:当数据库里的数据库很多时,备份一个数据库需要建立对应的定时作业,相对来说比较麻烦: 还好,微软自带的osql工具,比较实用,通过在命令行里里输入命 ...
- 云数据库POLARDB产品解读之二:如何做到高性价比
现在做任何事情都要看投入产出比,对应到数据库上其实就是性价比.POLARDB作为一款阿里自研数据库,经常被问的问题是:性能怎么样?能不能支撑我的业务?价格贵不贵?很显然,在早期调研阶段,对稳定性.可靠 ...
- 千万pv大型web系统架构,学习从点滴开始
架构,刚开始的解释是我从知乎上看到的.什么是架构?有人讲, 说架构并不是一 个很 悬 乎的 东西 , 实际 上就是一个架子 , 放一些 业务 和算法,跟我们的生活中的晾衣架很像.更抽象一点,说架构其 ...
- 记一次Node项目的优化
这两天针对一个Node项目进行了一波代码层面的优化,从响应时间上看,是一次很显著的提升.一个纯粹给客户端提供接口的服务,没有涉及到页面渲染相关. 背景 首先这个项目是一个几年前的项目了,期间一直在新增 ...
- [转帖]AMD第三代锐龙处理器首发评测:i9已无力招架
AMD第三代锐龙处理器首发评测:i9已无力招架 Intel 从之前的 CCX 到了 CCD 增加了缓存 改善了 ccx 之间的延迟. https://baijiahao.baidu.com/s?id= ...
- 一枚程序猿的MacBook M1详细体验报告
前言 2020年11月11日双十一上午,苹果发布了M1芯片的新款Mac,其最大的变化就是将处理器从Intel换成了苹果自研的ARM芯片M1. 上一次苹果更换Mac芯片要追溯到2006年,14年前,苹果 ...
- [Oracle](不会的是三炮)把状态列表作为存储过程参数这件小事
抱歉用了这么渣的标题,其实是一个很简单而且很常见的需求:假设我们有一个学生表,它有一个状态字段: create table T_STU ( STU_ID ) not null, NAME ), COD ...
- 转载:SqlServer数据库性能优化详解
本文转载自:http://blog.csdn.net/andylaudotnet/article/details/1763573 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小 ...
- 今天无意发现jquery的一个以前的误导
本文提供即刻提升你的脚本性能的十个步骤.不用担心,这并不是什么高深的技巧.人人皆可运用!这些技巧包括: 使用最新版本 合并.最小化脚本 用for替代each 用ID替代class选择器 给选择器指定前 ...
随机推荐
- NPOI导入导出EXCEL通用类,可直接使用在WinForm项目中
由于XSSFWorkbook类型的Write方法限制,Write完成后就自动关闭流数据,所以无法很好的支持的Web模式,网上目前也未找到好的解决方案. 注意:若直接使用在WinForm项目中,必需先下 ...
- 每日质量NPM包事件绑定_bindme(详解React的this)
一.bindme 官方定义: is a helper to bind a list of methods to an object reference 理解: 因为不推荐在render()里构建函数, ...
- 一行css解决图片统一大小后的拉伸问题(被冷漠的object-fit)
一.先来个实战 1. 测试案例 需求: 要求表情库里所有表情包大小都固定 实际效果: 由于图片原始大小都不一样,强行设定大小值会导致拉伸,如果不设定大小则参差不齐.例如: //html <bod ...
- Codeforces 765 E. Tree Folding
题目链接:http://codeforces.com/problemset/problem/765/E $DFS子$树进行$DP$ 大概分以下几种情况: 1.为叶子,直接返回. 2.长度不同的路径长度 ...
- 鼠标经过事件(onmouseover)
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- HDUOJ 不容易系列之(4)——考新郎
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2049 一开始我的想法就是使用错排公式,先使用全排列从N对中选出M对,然后再使用错排对选出的M对进行错排计 ...
- leecode第一百零四题(二叉树的最大深度)
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...
- python入门知识点(上)
1.硬件系统: 主机部分: 1.中央处理器(CPU): 电脑的大脑 运算器: 数值计算和逻辑判断 控制器: 可以电脑中的各个部件协同工作 2.内部存储器: 随机存储器:内存条 使用电信号表示数据; 特 ...
- AtCoder Grand Contest 027 C ABland Yard
ABland Yard 思路: 用了类似拓扑排序的方法来判环 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optim ...
- Appium的工作原理
把我们写的python语言代码,看做客户端 通过客户端向appium服务器发送请求 appium服务器把我们的代码转换成手机可以识别的指令 然后把指令发给手机,手机根据指令做出相应的操作 最后手机把操 ...