系统开发中存储过程使用的优势和劣势
2013-03-07 15:08
387 查看
在系统开发中使用存储过程来完成一些功能是很平常的事情,因为对于性能要求高的操作,或者大数据量的操作,存储过程比使用编程语言开发有相当的性能优势。曾经看到过一个系统使用的存储过程能用巨多来形容,基本上所有的操作都是在数据库写的存储过程。自己当初接触该系统时,对该系统的设计师兼DBA那是相当的佩服。他玩SQL玩的太牛了,写SQL直接用记事本写,然后写完几百行的脚本,基本不用怎么去调试和运行就可以通过了。
但是当我去了解该系统的业务和进行二次开发就发现很痛苦了,因为在存储过程中出现了错误可就不能像Visual Studio中那么方便的进行跟踪了,想单步没门。只能Print或者RAISERROR('',16,1)来解决了,可想而知,这就是一件考验人的耐心的事情了。同时我也发现一个好处,就是存储过程中的Bug一经解决发布就很方便了,不需要发布程序。
罗列存储过程的优点如下:
1.执行效率高。
2.安全性能好。
3.对于一些场合非常容易实现需求。
缺点如下:
1.可维护性比较差。
2.可读性也差。
当我们在改代码时,我们通过VS可以全部搜索,确认不必要的代码可以删除,但是存储过程可,没有那么容易了,你当然可以在数据库的所有存储过程中进行查找,但是
那些数据库的Job呢,或者其他数据库可能用到了这个存储过程呢,你没有那么容易确认吧。
因此我个人认为在开发系统时存储过程不要滥用,用多了后期维护就比较麻烦了,有些能够在代码中实现而且对系统性能影响不大的操作就不用写在存储过程中了,而且
考虑发布容易的问题,可以考虑在服务端完成一些业务操作,使用服务代替一部分存储过程的功能。
但是当我去了解该系统的业务和进行二次开发就发现很痛苦了,因为在存储过程中出现了错误可就不能像Visual Studio中那么方便的进行跟踪了,想单步没门。只能Print或者RAISERROR('',16,1)来解决了,可想而知,这就是一件考验人的耐心的事情了。同时我也发现一个好处,就是存储过程中的Bug一经解决发布就很方便了,不需要发布程序。
罗列存储过程的优点如下:
1.执行效率高。
2.安全性能好。
3.对于一些场合非常容易实现需求。
缺点如下:
1.可维护性比较差。
2.可读性也差。
当我们在改代码时,我们通过VS可以全部搜索,确认不必要的代码可以删除,但是存储过程可,没有那么容易了,你当然可以在数据库的所有存储过程中进行查找,但是
那些数据库的Job呢,或者其他数据库可能用到了这个存储过程呢,你没有那么容易确认吧。
因此我个人认为在开发系统时存储过程不要滥用,用多了后期维护就比较麻烦了,有些能够在代码中实现而且对系统性能影响不大的操作就不用写在存储过程中了,而且
考虑发布容易的问题,可以考虑在服务端完成一些业务操作,使用服务代替一部分存储过程的功能。
相关文章推荐
- 系统开发中存储过程使用的优势和劣势
- 使用框架开发的优势和劣势
- 使用框架开发的优势和劣势
- Mac OSX系统下,使用homebrew搭建PHP开发环境
- .NET WPF开发的相关应用系统可以使用WPF XAML(浏览器应用程序XBAP)
- 系统开发过程中的几点使用技巧
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之调整首页显示
- windows下eclipse中,涉及源码编译的apk开发使用系统签名机制
- 使用pl/sql developer开发工具无法编译存储过程,触发器,包等程序文件
- ERP系统开发中使用FineUI那些事
- 如何在WPF中使用MVVM开发架构开发一个餐馆点餐系统(CrazyElephant)
- 如何使用系统管理员帐户管理多个开发人员?
- ASP.NET,C#.NET 通用权限系统组件源码使用说明,程序开发的尚方宝剑,程序架构标准参考,程序开发必备知识
- Android 6.0 开发人员对系统权限的使用与练习(Permissions Best Practices)
- 用SignalR 2.0开发客服系统[系列5:使用SignalR的中文简体语言包和其他技术点]
- php开发 使用163邮箱做属于自己的Blog系统
- Android开发:使用Intent打开电话、短信、邮箱、本地文件等系统应用程序整理大全
- Unity3D游戏开发之使用Mecanim动画系统控制2D动画
- 【Android 系统开发】使用 Source InSight 阅读 Android 源代码
- 使用mvvm框架avalon开发公司内部运营管理系统的一些心得