论坛首页 软件开发和项目管理版

关于存储过程的使用

浏览 5125 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2008-02-02
我的经验,一般不需要存储过程
   
0 请登录后投票
最后更新时间:2008-02-02
业务逻辑鲜见非要用存储过程;
使用存储过程一般是统计分析逻辑。
如果表结构复杂出现性能问题,主要是Hibernate使用的不好,系统设计存在问题,又没有优化思路。

存储过程容易出错,很难调试,很难查原因,很难维护,很少有人愿意接这个烂摊子。
Hibernate, sql,procedure在一起搞,真不知道事务如何控制。

要说度就是业务逻辑坚决不用存储过程。
   
0 请登录后投票
最后更新时间:2008-02-03
使用存储过程提可以提高性能?不知道是个什么样的逻辑?是否经过了实际的测试呢?
所谓sql就比hibernate快?真的么?都是在优化过的情况下?
   
0 请登录后投票
最后更新时间:2008-02-03
我们在做域模型设计时做的不好,实体间关联也很多。用hibernate时,项目组内并没有多少真正精通hibernate的人,以至于后来不断以重构(不知道用重构是否合适)来提高性能,从单纯的hibernate,到部分使用jdbctemplate,同时也对hibernate应用不断优化:延迟加载、应用用缓存,weblogic配集群,oracle做表分区。我们在这方面的经验并不多,只是在不段摸索。
   
0 请登录后投票
最后更新时间:2008-02-03
如果说道精通hibernate,一个项目组有一个绝对足够了。
存储过程的优势在于批量数据操作,别的倒没什么了。
   
0 请登录后投票
最后更新时间:2008-02-28
所谓的移植问题纯是脑子锈斗了。
移植产生的费用够卖三四台服务器+oracle了

同意,如果数据库能更快更好的解决你的问题,用得着自己去实现吗??
   
0 请登录后投票
最后更新时间:2008-03-05
我和楼主一样,是从事电信方面的工作的,能够理解为什么要用大量的存储过程。
相对于其他一般企业来说,我觉得电信的项目有两大特点:
    1.数据量大。因为数据量大,所以一般在需要反复读取数据库数据时,处于性能考虑,所以选择把查询语句放在最靠近数据库的位置,也就是存储过程。举一个列子,我以前从事过业务规则的开发,一般在前台受理过一张订单,最后提交的时候,需要对办理的业务进行业务规范的校验,这个校验过程中,大概估算一下,涉及到的业务规则有1000个左右,其中大部分都涉及到数据量在百万级表的查询。
    2.业务种类繁多,电信不像移动,联通,产品相对来说比较单一。电信中涉及到了产品有固话,小灵通,宽带这些常见的,还有很多其他一些特殊的产品,比如全球眼什么的。再加上各种套餐,产品的数量很多。所以存储过程很容易迅速膨胀。
   
0 请登录后投票
最后更新时间:2008-03-06
存储过程的好处就是减少网络传输量
可以以能减少多少网络传输量为标准,来看是否要用存储过程
尽量少用!
   
0 请登录后投票
最后更新时间:2008-03-06
为什么会出现存储过程太多失控的情况?因为不是所有的开发人员都知道什么时候应该用存储过程,什么时候不需要用。如果一个项目里没有系统分析员级别的人来掌控使用存储过程的度,就容易出现失控的情况。
   
0 请登录后投票
最后更新时间:2008-03-07
以前做过金融行业的开发, 一些操作还是需要存储过程, 因为很多都是table scan的操作. 也是Java开发者去写SQL, 带来的问题就是
1.SQL写些得很滥,因为只是完成功能, 没有优化, 后来还要专门请人对SQL来调优.
2.存储过程很难调试, 更难维护.

既然EJB, JPA就提供业务层,数据层服务的, 存储过程能不用, 尽量不用.
   
0 请登录后投票
论坛首页 软件开发和项目管理版

跳转论坛:
JavaEye推荐