这是我曾经参与某公司面试时,做的一道笔试题,现在拿出来给大家分享下。题目如下:
一个刚上线半年的数据库软件系统,在某一天系统突然变的很慢,请分析可能导致这种情况的原因。
看到这样一个题目,大家心中会有一个什么样的思路呢?可以先思考下。
当然我接下来会告诉大家我是如何解答的,当然我的解答也不一定正确,全面。
我分析可能的原因有如下3种:
1.分析一下是否有其它的软件系统在对该软件的数据库进行大量的IO操作,结果导致数据库服务器的瓶颈,
所以软件系统也变慢了。
2.查看下该数据库是否有什么job是定期执行的,比如那种比较耗用资源的job在这个时候突然开始执行了。
3.分析软件系统中业务逻辑,同时查看数据库操作层的代码,看看有无由于在特殊的日期操作造成的系统
bug。
出现第一种解释是我在以前的工作中遇到过这种问题,那是我以前开发和维护的一个项目,在生产线上运行
的系统,系统一直都运行很正常,突然有一天,工厂的生产线的作业员汇报说,系统突然反应很慢,而且所
有的生产线都遇到了相同的问题。客户工厂非常焦急的联络了我,我查看了系统日志,发现我们的软件应该
是没有什么问题的。于是我就询问有没有其它软件在使用这个数据库,因为我查看了数据库,发现一些不是
我们开发的软件上次的数据,于是客户方面开始排查,结果果然如我料,他们无意中开启了一个批量上传数
据的程序,将一些文件中的数据全部导入到了数据库,由于数据量比较大,形成了IO瓶颈。这是我真实遇到
的一个情况。
后面2种情况是我自己的分析。不知道大家有没有其它的想法。有的话请回复下,让我也学习下,谢谢了。