不同DBA对数据库做优化的总体思路和局限性

来源:互联网 发布:微信票务系统 源码 编辑:程序博客网 时间:2024/05/16 11:26
    在DBA的工作当中,数据库的调优应该是最艰难的任务了,它不同于数据库的规划、安装配置、备份恢复等工作,这些工作都是熟能生巧的任务,而且很容易确定工作什么时候会结束。但优化则不同,它体现的是对计算机系统彻底的了解、对理论知识和实际操作彻底的掌握。而且优化工作是很难在短时间内确定结果的。
    不同的角色(不同的DBA)对数据库优化的思路有很大区别,在这里我把它们分为数据库DBA和基于数据库应用的项目DBA。前者即售后工程师,后者即项目组内的DBA或者产品DBA。售后工程师们到达现场之后一般不需要与任何人沟通什么,除了登陆数据库的权限信息,他们的优化步骤基本是固定的:
1.要权限:
2.登陆数据库察看当前系统压力(memory、cpu、io、disk、network)
3.取数据库日志,如果有必要还会取操作系统日志
4.在问题时段(或者是压力大的时间段)生成快照,获得性能分析依据
5.根据以上内容给出优化方案
6.结束
售后工程师现场优化的优点如下:
1.专业有深度,能够在数据库实例层面的调整给出完善的方案且可以直接实施。比如系统经过一段时间的运行,暴露出了数据库和操作系统最初的一些参数的设置存在问题。
2.庞大的技术支持团队作后盾,任何不涉及应用调整方面的性能问题,理论上都可以彻底解决。
售后工程师现场优化缺点:
1.费用太高。都是按小时计费
2.能够做的工作很有限。性能问题90%以上都是需要通过调整应用来解决的,而售后工程师在这方面只能给出一些非常笼统的解决办法,没有可操作性
3.优化效果很难保证。性能调整是一个需要持续调整和观察的过程,不可能一次结束,售后往往不能够跟踪到底。他们的最终成果一般都是一份文档而且。此外由于onsite service太过昂贵,企业一般只有在万不得已时才请他们一次,而往往结果并不能令人满意。
    跟随在项目组当中的或者是产品的DBA往往需要了解更多的知识和信息,他们的优化工作绝对不体现在技术本身,更不能仅仅局限于某一个产品的性能提升,谁能够宏观的考虑性能问题,谁就能够获得越大的成功。他们做优化的优点是能够真正的完成优化任务。缺点是太累,水平提升到一定程度以后都拜拜了。