论坛首页 综合技术论坛

探讨用存储过程的优劣

浏览 84024 次
该帖已经被评为良好帖
作者 正文
   发表时间:2011-02-10  
我说一句,for update跟你用不用存储过程一毛钱关系也没用。
这是业务决定的,不是说跟你用的jdbc,ibatis,hibernate,pl/sql决定的。
0 请登录后投票
   发表时间:2011-02-10  
glovebx 写道
sqicoo 写道
LZ,我正维护跟你一样结构的系统。
  我先结论了:你已经悲剧了。
1、在高并发的时候,问题出来,你还那麽多for update 之类的。存储过程最好连update也不要出现。
2、SQL不是你说那么简单,业务复杂点,改动需求,你所有规范都会走样。
3、FLEX也可以跟MVC,不过是使用CS 那种MVC 模式。FLEX MVC框架也很多。


1、高并发时,即便逻辑在java代码里,一样会有问题。就我们系统而言,因为是企业内部使用的erp,目前的并发完全能承受。
如很多人所说,什么样的场景,用什么样的架构。

2、目前就1个人维护,没有什么大问题。

3、flex确实可以有mvc架构,问题是会带来更多不必要的工作量,比不上我们这个简化过的架构。我以前一直就是SS下做mvc架构的系统,许多为了架构而架构的工作其实可以省略。



所谓企业应用 高并发 其实这种场景极少。

业务既复杂,触发频度又要高。这种不是简单用存储过程或者是用什么语言去解决的。更多是要考虑怎么设计这个架构了
0 请登录后投票
   发表时间:2011-02-10  
企业应用一般都是低并发,而且很难真正cache住数据。
互联网应用是高并发,有大量数据可以做cache。

区别还是相当明显的。
0 请登录后投票
   发表时间:2011-02-20  
我也有好几年在和DB2的存储过程打交道,应用系统中把业务封装在SP中确实是个很不错的方法,系统能够很好地维护,扩展,修改。 

我们那个系统,九十年代末就在开发使用了,边开发边用,一直沿用到现在,前面应用程序都换了好多个版本了,从Lotus, PHP 到现在的java,java也是五花八门,有jsp,struct,JSF,Extjs啥都有,由于业务逻辑都在存储过程里面,即使经手了那么多人,仍然没有烂掉。

另外在复杂的应用系统里面,让DB开发人员来写SQL,比程序员来写要好很多。做好复杂的应用对于程序员来说,既要懂业务,懂开发,同时还要深入理解SQL才能开发出高效的模块。而对于DB Engineer来说,懂业务和SQL就可以。


这里说的复杂的应用,是指那种一个按钮下去,访问了十几个表,执行十几条SQL的应用。一般来说,这种情形下,缓存几本没用,只是一个负担而已,因为其中任何一个表改变了信息,缓存就得失效。

0 请登录后投票
   发表时间:2011-02-21  
zzhonghe 写道

这里说的复杂的应用,是指那种一个按钮下去,访问了十几个表,执行十几条SQL的应用。一般来说,这种情形下,缓存几本没用,只是一个负担而已,因为其中任何一个表改变了信息,缓存就得失效。


应该是这样,所以我估计用类似oracle而不是类似mysql这样的数据库会更好些。对执行速度要求很高的场合当然还是用存储过程好些,否则还是用高级语言更好。

0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics