有史以来性价比最高最让人感动的一次数据库&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选择器 给选择器指定前 ...
随机推荐
- PHP feof()函数
feof()函数检查是否已经到达文件末尾(EOF) EOF == end of file 如果出错或者文件指针到了文件末尾(EOF)则返回true,否则返回false 语法: feof(file) ...
- _itemmod_refresh
-- 随机FM刷新设置-- 小技巧:很多服所说的装备鉴定效果可以通过这个实现,也可以对物品重新生成新的附魔--详细解说一下鉴定系统如何实现--1首先在_itemmod_enchant_groups中添 ...
- 【五】php 面向对象
面向对象 概念:按类进行分类,类是表示彼此之间可能互不相同,但是具有一些共同点的对象集合 多态性:不同的类对同一操作可以有不同的行为 继承:允许我们使用子类在类之间创建层次关系 类 关键字:class ...
- java用毫秒数做日期计算的一个踩坑记录
错误示例: Date today = new Date(); Date nextMonth = new Date(today.getTime() + 30* 1000*60*60*24); print ...
- centos7 Python3终端中敲击方向键显示「^[[C^[[D」
[root@localhost src]# python3 Python ( , ::) [GCC (Red Hat -)] on linux Type "help", " ...
- 1.1.1 vue-cli脚手架工具
参考文档: windows下npm安装vue(以下教程大部分都是参考这篇博客的,按照着这篇博客自己实现了一遍) npm安装vue-cli脚手架 一.前言 npm:nodejs下的包管理器,安装好nod ...
- Centos7默认自带了Python2.7版本,但是因为项目需要使用Python3.x,这里提供一种比较快捷方便的安装方式
安装必要工具 yum-utils: $ sudo yum install yum-utils 使用yum-builddep为Python3构建环境,安装缺失的软件依赖,使用下面的命令会自动处理.$ s ...
- 远程Service的显示 / 隐式启动
在进程间通信时,常会设计开启远程 Service 的情况.开启远程 Service 的方式有两种,一种时显示开启,一种是隐式开启.下面分别来看: 一.隐式开启 服务端:Service 所在 Andro ...
- Java面试题基础知识(收集)
1.集合类:list和Set比较,各自的子类比较(Arraylist,Vector,inkedLIst,HashSet,TreeSet) List:存入元素有序,元素可以重复,允许null值得存在,主 ...
- Linux 各种软件的安装-mediawiki + wordpress篇
php apache mysql 三剑客安装好后,可以愉快地安装一些成熟的web应用啦,比如wordpress可以当做自己的笔记本,mediawiki整理知识库. 首先是mediawiki,网上说不错 ...