日期:2014-05-16  浏览次数:20503 次

数据库性能问题的思维树
当解决问题的时候我们都会有一套解决问题的方法学,数据库性能问题排查的时候Snr DBA和Junior的差别就在于,Junior会由于缺乏经验和实践,直接ask google,而 Snr DBA往往会有一套正确的思维方法,更多的是倒树型结构的,逐步收窄定位问题。

抛砖引玉一个场景,当你接到客户电话说应用程序慢了,帮我看看数据库是否有问题?你会怎么做?并不需要具体讨论什么问题,而是大家能不能提炼和回忆一下自己最经典解决问题的案例和当时的思路。
------解决方案--------------------
前不久有一个帖子讨论过。。我去找找。
------解决方案--------------------

------解决方案--------------------
引用:
思维一的一次案例是:一次网络的变更,造成了SQL Cluster的专用访问带宽突然被共享了。开始大家以为是数据库问题,但通过变更管理,很快定位了问题。DBA甚至都没有做什么,就解决了。如果DBA直接去处理,估计花费30min-1hr的无用功,反馈的结果和上面是一样的。


呵呵,确实可以通过变更管理能发现这个问题。

不过,如果你在windows上对基本的网络的访问的速度有监控,应该也能发现这个问题。

我觉得,首先任何问题,都是相对的,相对于昨天来说,今天的访问有点慢,那么这可能是一个问题,也可能不是。

所以,要比较好的解决问题,我觉得首先是要做基本的监控,也就是对于cpu、内存使用,io的读写速度和吞吐量,以及网络的吞吐量和速度,进行监控。

然后,就是,有了问题,必须要明确是什么问题,比如慢,是什么意思,是相当于以前来说的,还是一直很慢,慢到什么程度。
比如,原来一个页面,查询时需要1分钟,现在5分钟就出不来,这个也是慢,也有原来只需要0.01秒,现在需要1秒,这个也是慢,所以必须要明确问题,问题是什么,然后处理