SQLServer数据库开发人员需要避免的八种习惯
小标 2018-07-06 来源 : 阅读 1124 评论 0

摘要:本文主要向大家介绍了SQLServer数据库开发人员需要避免的八种习惯,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。

   本文主要向大家介绍了SQLServer数据库开发人员需要避免的八种习惯,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。

    说起开发人员,DBA一定有一肚子苦水,但你却又离不开他们。在某些方面上,SQL Server开发人员和DBA们总有着长期的、“光荣的”历史性分歧,开发人员想为应用程序采取某种方法,而DBA们不希望那样做。

  应用程序开发人员对SQL Server性能的影响是巨大的,可能是积极影响,也可能负面影响。你可以随便调整索引和存储子系统,但是你作为DBA对性能的影响比起训练有素的开发人员对性能的影响来说是微不足道的,开发人员才知道如何从SQL Server获得最佳性能。但是,并不是所有开发人员都有这种经验和能力。本文中,笔者总结了SQL Server开发人员的八个不好的习惯,这些做法很可能会对系统本身的性能造成极大影响。

  1、在服务器上运行所有应用。

  存储过程可以用像C#这类.NET framework语言替代编写,一些开发人员喜欢把几乎整个应用程序的逻辑都放到SQL Server上。不幸的是,这并不是使用SQL Server的最佳方式。我们需要考虑一定的平衡,有一些程序是需要放到SQL Server上运行的,而另外一些应用,尤其是那种长期运行的处理,需要在其它地方运行。

  2、写ad-hoc查询。

  SQL Server讨厌运行ad-hoc查询,因为它每次都要为这些查询编译查询计划。相反,开发人员应该把查询编写成存储过程,这样就可以让SQL Server更容易缓存执行计划。存储过程还有助于提供对某些类型安全攻击的有力保护。

  3、在开发环境中设计索引。

  开发环境永远不能反映真实生产环境的情况。虽然SQL Server开发人员在开发过程中建立索引是一种较好的初步设想,但是你应该在进入生产环境以后再次体验它们的效果,重新调整索引以便适应真实环境,并定期重复这一动作以满足生产需求的不断变化。

  4、查询太多数据。

  没有哪种行为能比得上开发人员查询一百万行数据对服务器性能所造成的破坏,而实际上他只需要其中的一行数据。相反,开发人员可以在客户端应用中实现分页,只查询需要显示的数据,只是在用户真的需要那么多数据的时候再去查。

  5、使用sysadmin或者“sa”账号。

  这是最让安全管理员讨厌的做法,但是对于开发人员,他们很容易让客户端应用随意访问SQL Server,无需花时间理解安全方面如何考虑。SQL Server提供了许多更好的选择,那些把“sa”账号写进应用程序的SQL Server开发人员应该受到鄙视。

  6、无限制地使用游标。

  有经验的DBA都知道,游标是让人又爱又恨的东西,而且他们知道开发人员对游标经常是青睐有加。对于SQL Server,游标是内存和处理器密集型的,需要在内存中批量吞吐大量数据,然后一次处理一行。开发人员最好避免使用,除非真的必要。

  7、不使用视图。

  视图是SQL Server获得性能提升的另一种方式,因为它与存储过程一样,可以缓存执行计划。视图还帮助隐蔽数据结构,避免客户端应用看到真实的后端数据库结构,这样随着时间的推移做结构变化也就更容易了,会对客户端造成很少的影响。

  8、过度标准化。

  虽然SQL Server可以支持处理相当大量的表连接操作(我有的客户端应用使用九个或十个表连接的情况很常见),但是超过一定的量是会有问题的。如果经常运行多达20个表的连接,那就有点太多了,这可能是数据库设计过度标准化的信号。标准化对于减少冗余有好处,但是也带来了性能压力。非规范化是以更优的性能为理由,消除标准化规则应力的过程。

  出现这些问题,DBA往往没有太多的办法,因为它们通常是内嵌在代码中的,DBA是接触不到的。但是你可以提醒SQL Server开发人员注意,要求他们在未来的开发中对这些问题给以关注。

    本文由职坐标整理并发布,了解更多内容,请关注职坐标SQL Server数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程