`

存储过程——天使还是魔鬼

阅读更多
源自:http://www.cnblogs.com/lane_cn/
看了Heroman的一篇文章,谈论该不该在项目中使用存储过程代替SQL语句。 看后有一些感想,因为最近工作接触到一个系统,业务过程几乎完全是用存储过程实现的。随着系统的不断发展,新的需求逐渐难以支持。这个原因当然很复杂,即 使不使用存储过程,可能也有同样的问题。但是既然谈到具体技术上,就来看一下一个主要以存储过程实现的系统到底有哪些问题。

存储过程和嵌 入程序中的SQL哪个更好,要用一种合理的比较方式来比,不能拿写的好的存储过程和写的烂的程序比,当然也不能拿写的烂的存储过程和写的好的程序比。我们 先假设开发人员具有同样水平,项目组具有同样的组织协调能力,他们写出的存储过程和代码具有同样的质量,都已经根据产品的具体情况做出了最优的选择。

很 多人这样认为:存储过程运行在最靠近数据的地方,最大限度减少了业务处理的环节,因此具有最高的运行效率。对于一个独立的程序片断来说确实如此。但是当一 个软件规模逐渐增大,业务逻辑逐渐变得复杂以后,这一点差距已经不会对运行效率造成决定性的影响了。这时候,影响程序效率的因素变的更加复杂,比如:系统 对于并发任务的处理是否合理、是否具有分布式的能力、是否可以将常用的数据缓存……这些能力靠存储过程来实现是非常难的,甚至是不可能的。一旦采用了存储 过程,在程序漫长的生命周期中,要提高程序的运行效率就只有一个办法了:增加硬件投资。但是这个办法不一定有很好的效果,因为再好的硬件条件也无法弥补一 些根本的缺陷。

软件开发发展到现在,总的来说有个规律,就是要让开发者越来越少的考虑技术问题,越来越接近客户的业务思维。现代的软件开 发,已经越来越接近这样的方式:研究客户的需求,为业务建立模型,分析系统的外部和内部需求,以最接近业务模型的方式建立软件系统模型。这样的方式建立的 系统才能最好的满足客户的需要,同时也能较好的适应需求的发展。

如果采用存储过程作为建立业务层的形式,结果就是回到“排列需求——数据 库设计——界面设计——编码——测试”的道路上。这样当然是可以把系统做出来的。系统部署了,这只是他生命周期的开始,一切才刚开始。存储过程不仅实现了 当前的业务需求,也建立了一系列的API。在漫长维护过程中,维护人员在这些API的基础上实现新的需求、修改这些API的错误。如果发现某个API“似 乎”错了,或者不满足新的业务需求,没有人敢修改他们,最好的办法是:再加一个新的API。存储过程的数量越来越多,越来越难以命名——函数难命名不是编 码的问题,而是设计的问题。于是,在项目运行两年以后,还是难以形成一个优质稳定的业务开发平台,人们还在探究数据表、字段、VARCHAR500、 1403 data not found……

说到这里我也许应该得出结论,存储过程是不好的。可以这么说:用存储过程实现主要业务逻辑不是一个好办法。但是这个东西既然被创造出来,一定也有他适用的地方。

如 果我有这样的需求:数据库中有大量的实时运行数据,需要定期把这些数据进行简单的行列归整,放到另外一个数据库中做分析统计之用。在这种情况下我首选存储 过程。存储过程应该处理“数据”,而不要处理“业务”。并且在这种情况下存储过程极大的减少了IO消耗,真正的体现了他的效率优势。
分享到:
评论

相关推荐

    院士大会报告,谭铁牛:人工智能是天使还是魔鬼

    院士大会报告,谭铁牛:人工智能是天使还是魔鬼,介绍了人工智能的发展。

    谭铁牛:人工智能是天使还是魔鬼.pptx

    谭铁牛在2018年院士大会上的演讲 ,人工智能是天使还是魔鬼.pptx

    科学技术是天使还是魔鬼.doc

    科学技术是天使还是魔鬼.doc

    通达信指标——魔鬼通道(主图).doc

    通达信指标——魔鬼通道(主图).doc

    j2me_天使VS魔鬼_源代码,

    【标题】"j2me_天使VS魔鬼_源代码"所指的是一款基于Java ME(J2ME)平台开发的游戏程序。Java ME是Java技术在移动设备和嵌入式设备上的应用版本,它允许开发者创建能在各种小型设备上运行的应用程序,包括手机、智能...

    经典英文书籍——魔鬼词典

    ### 经典英文书籍《魔鬼词典》的知识点解析 #### 一、作品背景与作者简介 《魔鬼词典》是一本由美国作家安布罗斯·比尔斯(Ambrose Bierce)创作的经典英文讽刺作品。该书最初在1881年于一家周刊上连载,断断续续...

    PS天使魔鬼翅膀笔刷

    总的来说,“PS天使魔鬼翅膀笔刷”是Photoshop设计者手中的一款强大工具,它不仅丰富了设计元素库,还简化了翅膀图形的制作过程,让设计师能够更专注于作品的整体构思和创新。无论是专业设计师还是业余爱好者,都能...

    魔鬼的律师——是非无度.doc

    3. 邓析与“魔鬼的律师”:邓析的辩论风格被后人比喻为“魔鬼的律师”,因为他能够把是非颠倒,以自己的意志为转移,这与西方文化中“魔鬼的律师”形象相似,意味着能够从各种角度辩论,甚至可能违背道德或常规。...

    天使与魔鬼

    天使与魔鬼

    通达信指标公式源码 天使魔鬼 主图源码.doc

    通达信指标公式源码 天使魔鬼 主图源码.doc 通达信指标公式源码是一种基于通达信平台的技术指标公式,用于股票市场的技术分析。该公式主要用于计算股票的移动平均线、相对强弱指标、止损止盈指标、 volume ...

    初中语文文学讨论名著导读天使与魔鬼解决宗教与科学的纷争

    初中语文文学讨论名著导读天使与魔鬼解决宗教与科学的纷争

    通达信魔鬼操盘手主图指标 源码 通达信.doc

    * 买入信号:当天使线上穿魔鬼线时,发出买入信号。 * 卖出信号:当魔鬼线上穿天使线时,发出卖出信号。 4. Stickline 该指标中使用了多个 Stickline 来 Capture 市场趋势和短期波动: * Stickline(天使>=魔鬼)...

    魔鬼作坊VIP模块V8.5.ec

    魔鬼作坊VIP模块V8.5.ec魔鬼作坊VIP模块V8.5.ec魔鬼作坊VIP模块V8.5.ec魔鬼作坊VIP模块V8.5.ec魔鬼作坊VIP模块V8.5.ec魔鬼作坊VIP模块V8.5.ec魔鬼作坊VIP模块V8.5.ec

    魔鬼聊天术1

    总的来说,《魔鬼聊天术1》是一本提供实用技巧和心理洞察的指南,帮助读者在现代社会中更好地建立和维护人际关系,尤其是在与异性交往的过程中。通过学习书中的理念和方法,读者可以增强自己的沟通能力,提高成功...

    魔鬼一键备份还原

    魔鬼一键备份还原是一款专为普通用户设计的便捷数据保护工具,其主要特点是简化了复杂的备份和恢复过程,使得即使是电脑操作不熟练的用户也能轻松应对数据安全问题。这款软件的核心功能集中在“一键”操作上,它通过...

    既是天使又是魔鬼:主权财富基金如何在华尔街攻城略地.doc.pdf

    既是天使又是魔鬼:主权财富基金如何在华尔街攻城略地.doc

    魔鬼打字-1.2ZIP

    总而言之,魔鬼打字-1.2ZIP是一个针对初学者设计的打字训练工具,通过ZIP格式压缩,便于下载和存储。其内置的各种功能和教学资源旨在帮助用户高效地提高打字技巧,是学习电脑基本操作和提升工作效率的好帮手。

    魔鬼作坊vip教程

    魔鬼作坊vip辅助绝密教程!

    魔鬼作坊教程最新下载地址.zip

    魔鬼作坊教程是一个颇受欢迎的学习资源,它涵盖了广泛的IT技术领域,包括编程、网络安全、数据分析、人工智能等。这个压缩包文件“魔鬼作坊教程最新下载地址.zip”显然是为了分享这些教程的最新更新。通常,这种类型...

Global site tag (gtag.js) - Google Analytics