• 系统开发中存储过程使用的优势和劣势


              在系统开发中使用存储过程来完成一些功能是很平常的事情,因为对于性能要求高的操作,或者大数据量的操作,存储过程比使用编程语言开发有相当的性能优势。曾经看到过一个系统使用的存储过程能用巨多来形容,基本上所有的操作都是在数据库写的存储过程。自己当初接触该系统时,对该系统的设计师兼DBA那是相当的佩服。他玩SQL玩的太牛了,写SQL直接用记事本写,然后写完几百行的脚本,基本不用怎么去调试和运行就可以通过了。

              但是当我去了解该系统的业务和进行二次开发就发现很痛苦了,因为在存储过程中出现了错误可就不能像Visual Studio中那么方便的进行跟踪了,想单步没门。只能Print或者RAISERROR('',16,1)来解决了,可想而知,这就是一件考验人的耐心的事情了。同时我也发现一个好处,就是存储过程中的Bug一经解决发布就很方便了,不需要发布程序。

              罗列存储过程的优点如下:

              1.执行效率高。

              2.安全性能好。

              3.对于一些场合非常容易实现需求。

              缺点如下:

              1.可维护性比较差。

              2.可读性也差。

            当我们在改代码时,我们通过VS可以全部搜索,确认不必要的代码可以删除,但是存储过程可,没有那么容易了,你当然可以在数据库的所有存储过程中进行查找,但是

    那些数据库的Job呢,或者其他数据库可能用到了这个存储过程呢,你没有那么容易确认吧。

            因此我个人认为在开发系统时存储过程不要滥用,用多了后期维护就比较麻烦了,有些能够在代码中实现而且对系统性能影响不大的操作就不用写在存储过程中了,而且

    考虑发布容易的问题,可以考虑在服务端完成一些业务操作,使用服务代替一部分存储过程的功能。

  • 相关阅读:
    设计模式漫谈之原型模式
    Sql语法高级应用之六:如何在Sql语句中如何使用TRY...CATCH
    Sql语法高级应用之五:使用存储过程实现对明细多层次统计
    Sql语法高级应用之四:使用视图实现多表联合数据明细
    Sql语法高级应用之三:存储过程
    Sql语法高级应用之二:视图
    Sql语法高级应用之一:使用sql语句如何实现不同的角色看到不同的数据
    使用WebService调用第三方服务
    关于数据迁移的一些经验总结
    如何使用jQuery实现根据不同IP显示不同的内容
  • 原文地址:https://www.cnblogs.com/kevinGao/p/15764681.html
Copyright © 2020-2023  润新知