论坛首页 Java企业应用论坛

存储过程是否被滥用

浏览 8275 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-11-18  
我们公司也这么做~   迁移的时候会非常非常麻烦的说...
0 请登录后投票
   发表时间:2011-11-19  
存储过程 确实在处理大数据量操作时能起到提高性能的作用,用起来也蛮方便的,省了很多java代码!~ 就是可移植性太差了!
0 请登录后投票
   发表时间:2011-11-19  
cosmo1987 写道
统一风格确实可能是其中考虑的因素。只是个人觉得存储过程这样的东西。特别是oracle的package这样的东西应该用在更加复杂的逻辑上。对于简单的逻辑用通用的SQL生成类拼出sql然后返回映射对象。需要操作使用时直接调用一个简单方法就可以完成。提高了效率,也不需要对sql的维护。

当然,可能我是来求认同感的吧...自己已经倾向于一个方向了。只是不知道自己这样的倾向是否是对的...是否是正确的设计方式...


你的感觉是对的。存储过程只应该用于解决某些关键的,高度复杂性的过程。 其他的都应该交给数据层完成。
0 请登录后投票
   发表时间:2011-11-19   最后修改:2011-11-19
Tracy-Lcz 写道
CALL 存储过程和 execu SQL 是一样的。

其实调用存储过程和直接执行sql,从数据库角度看性能上是不一样的。存储过程执行的sql代码还是要回到sql执行区去完成。其实是存储过程区域和sql区域需要相互切换的,从性能上看,和不切换相比还是不一样的。只是对于复杂的业务逻辑,一次性查询访问操作的表很多,如果从java去使用sql对数据进行所有操作的话,性能不及存储过程。而如果把所有需要的操作都写成一个sql的话,可能出现sql过长而无法编译的情况或者重复调用其中的某一个操作。这个时候,存储过程的价值个人觉得才被体现出来了。
0 请登录后投票
   发表时间:2011-11-19  
christy_fang 写道
我们公司也这么做~   迁移的时候会非常非常麻烦的说...

是的...这个也是一个问题...只是只要使用sql,需要迁移换数据库的话,都会有问题。比如oracle和mysql在分页上的sql写法停不同的
0 请登录后投票
   发表时间:2011-11-20  
企业或大的鲜有换数据库的问题,都是让用户买指定的设备和软件。而且这类应用维护很麻烦,一天有几十个修改是正常的,所有要把逻辑写在java业务层里,就是一个相当麻烦的事,而写在数据库的存储过程里,仅需要重新编译存储过程包就可以了。所有才有把所有业务逻辑写在数据库里的想法和实现。
0 请登录后投票
   发表时间:2011-11-20  
公司里的一般的存储过程由dba吗?  刚学软件 望请教
0 请登录后投票
   发表时间:2011-11-21  
gu_sofia 写道
公司里的一般的存储过程由dba吗?  刚学软件 望请教

看公司的。稍微大一点的公司分工还是比较细致的。会有DBA统一管理数据库。其实DBA很大一部分工作是管理数据。
0 请登录后投票
   发表时间:2011-11-21  
这样没啥不好
java->其他语言,反正数据库相关都在存储过程里毫无压力
或者
数据库->nosql,java里没了sql,同样毫无压力
0 请登录后投票
   发表时间:2011-11-28  
cosmo1987 写道
大家对于所有的dao调用都让java去调用存储过程,是否觉得是对存储过程的滥用呢?

感觉一些很简单的sql查询,全部使用存储过程,美其名曰:实现sql和java代码分离。


这纯属于编造和误用规范,
实现sql和java代码分离,不是使用这种方式。
我们最好使用java编程,让orm给我们做转换,并且不要让它入侵domain层,这样,非常利于代码迁移。比如,你使用oracle和sql server,变化就不会很大,当然有些变化,如果逻辑是java写的,我们就不怕了,否则,无法迁移。
调用存储过程,非常不利于应用sacle,一个数据库,它可以达到极致,但是使用多个数据库,甚至不同的数据库,问题就接踵而至了。问题太多了。

我们尽量少使用存储过程,麻烦大家对概念理解了再使用,不要拍拍脑袋想东西,简直,有点胡闹。
0 请登录后投票
论坛首页 Java企业应用版

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