开发人员与数据库管理员(DBA)在实际工作中会经常打交道,但并不是人人都能相处的很好,开发人员与DBA需要知道彼此要的是什么。在本文中,我们就将为您解读开发人员如何理解你的DBA。
DBA最在乎什么
说起DBA在乎的事其实很简单,一致性(consistency),一致性还是一致性。他们希望每天在数据库里发生的事都是可以预见到的,这会让DBA的工作变得更简单。而一致性对于DBA来说主要由三方面组成,即正常运行时,性能以及自动化。那么DBA需要开发人员提供什么呢?也很简单,他们需要你提供上述的三个条件,让数据库能正常运行,将性能调整到最佳同时让任务自动运行。
首先,DBA的工作目标就是让数据库能够正常运转,尽量避免故障的发生。试想,如果由于开发人员的代码写的糟糕而造成数据库服务器宕机,你认为业务人员会找程序员的麻烦还是DBA?他们才不在乎代码写的怎么样,因为DBA就是负责让数据库正常运转,而他没有做到。对于DBA来说,威胁数据库正常运行的最大因素就是未经测试的代码。因此开发人员需要记住,在将应用程序投入生产环境之前,一定要在非生产环境之下对代码进行测试。
其次,维护数据库性能也是DBA最重要的工作之一。开发人员不一定要写出最好的代码,但一定不要写糟糕的代码。一行伟大的代码也许只能将性能提升1%,但一行糟糕的代码甚至能把整个库拖垮。因此开发人员要在非生产环境中对代码的性能进行测试并校对,这能够帮助DBA保持数据库性能服务水平。
第三,DBA非常喜欢自动化,因为它能够帮助DBA维护一致性。对于开发人员来说,他们如何做才能让DBA的工作自动化?第一要养成为代码写好注释的习惯,这能够让DBA了解程序设计的思路;第二要遵循软件版本发布周期,这使得代码的发布是可重复的;第三要根据源代码管理规则来检查自己的代码,这使得回滚变得更容易。
DBA会不会挑剔你写的代码?
相信许多开发人员都会有这样的顾虑,DBA会不会对你写的代码挑三拣四,或者他们认为你写的代码就是一堆垃圾。DBA当然会挑剔开发人员的代码,但可能并没有你想象的那么严重。事实上,DBA可能是整个IT部门最忙的一群人,他们不会在乎你是否给表起了别名,或者是否在insert里用到了into,他们有更重要的事情需要考虑。记住,DBA在乎的只有一致性。
开发人员需要认识到,你的代码是否对DBA的工作造成了影响,是否造成了性能问题,也许是锁或者I/O的问题,也许会对扩展性造成影响。这些代码也许现在没有问题,但并不代表未来也没问题。比如SELECT或者SELECT COUNT(*),在DBA眼中,你写的这些代码很可能是为了偷懒,但会对查询性能造成极大的压力。当代码在生产环境中运行十分差的时候,记住是你负责这部分代码,并不是投入生产环境你的任务就完成了。
总结
DBA最在乎的是一致性,而实现一致性的方法就是保证正常运行时间,保证性能最佳并尽量让一切的工作自动化完成。开发人员的任务就是帮助DBA实现上述的目标,DBA当然也会与开发人员倾力协作从而达到一致性。如果与DBA的沟通中遇到阻力,那么开发人员需要先问自己所做的工作是否已经影响到了数据库的正常运行或性能。当开发人员努力理解DBA的工作之后,也许他们将成为你最给力的队友,因为虽然彼此对技术的看法不一样,但他们与开发人员都有共同的业务目标。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
Notre Dame对云端SQL Server性能基准的探索实践
确立SQL Server的性能基准,对于云端迁移来说是至关重要的第一步,一位来自于University of Notre Dame 的DBA表示,他正在试图通过数据库监控软件,找出SQL server的性能基准。
-
DBA必须掌握的数据库恢复管理技术
如果没有备份副本,数据库管理员就无法还原数据库,所以DBA在恢复之前倾向于考虑备份是合乎逻辑的。 但是,对我来说,这种逻辑一直是错误的。
-
DBA也要和领导抢饭碗?
数据库架构师Ziaul Mannan 认为,DBA有成为高管的潜在可能,而这种潜力在过去往往被忽视,他还将证明DBA技能到领导力的转变是可行的。
-
Oracle备份和恢复简史
这些年来,Oracle数据库备份和恢复方式已经发生了重大变化,特别是在Recovery Manager(RMAN)功能有了进一步改善之后。