论坛首页 Java企业应用论坛

把业务逻辑从存储过程中拿出来

浏览 41140 次
精华帖 (2) :: 良好帖 (2) :: 新手帖 (15) :: 隐藏帖 (5)
作者 正文
   发表时间:2008-08-12  
athene11 写道
从LZ的描述看,应该是存储过程中select语句或者其它语句的关联有性能问题。


我赞同这个观点。是存储过程的语句有问题。
0 请登录后投票
   发表时间:2008-08-15  
不知道楼主是不是想描述这样的问题。

单记录计算量复杂,取的数据相对简单。

写在JAVA里集群计算效率提高是很明显,多应用同时做。

偶在电信行业,即使存储过程也是会做成各区块分开计算,同时跑。

我们的数量至少是500W以上
0 请登录后投票
   发表时间:2008-08-15  
jjx 写道
icewubin 写道
jjx 写道
其实一些人轻视存储过程,只不过是在掩盖自己对sql 方面的无知

sql 中的学问大着呢,很多都涉及到 算法问题


说话不要随便上纲上线,你对数据结构和算法了解多少呢?存储过程中的算法占整个计算机算法的领域能有多少呢?

你又是怎么知道别人是轻视呢?别人要掩盖呢?我还能说你只不过是在掩盖自己对JVM的无知,对数据结构的无知等等。这种话说了有意义么?你怎么不说大家都轻视操作系统和编译原理呢?

每一种语言,每一种算法,每一种策略都有自己的领域和应用场景,而且随着研究的深入,各自都能有不同的发展,没什么一种语言能包办所有的事情的。

每一个技术人员,精力也是有限的,有的选择了Unix C,有的选择了Java,有的选择了Linux内核,有的选择了.net,有的选择了ROR等等,因素有很多,难道这个世界上只有存储过程么?



了解的比你少,总行了吧,火气干嘛这么大

我只是指某些人,这些人大多只懂得select,delete ,update而已. 这是事实,再说做系统内核或是搞驱动,做单片机的的会在这里讨论sql吗?做企业数据库应用,那个又能回避sql呢.,我做程序已经超过10年,唯一可以自夸的是见过的人比你多 或许你见过的人比我更多也说不定,那么就算了,你正确. 呵呵,不用搞的这么不开心


是呀!现在软件开发细分得越来越明显了.不再象以前一本经书读到老.
0 请登录后投票
   发表时间:2008-08-15  
存储过程很好啊,有变动改一下编译一下马上就生效了。哈哈。效率绝对好,你的10分钟绝对是写程序的太烂了
0 请登录后投票
   发表时间:2008-08-15  
写存储过程比较常见的错误是:
loop over a cursor
    select foo from table where x=loopVar


这种东西不慢就出鬼了。一般这种东西,把select写得好点,从几十分钟降到十几秒也是正常的。
0 请登录后投票
   发表时间:2008-08-16  
ajoo 写道
写存储过程比较常见的错误是:
loop over a cursor
    select foo from table where x=loopVar


这种东西不慢就出鬼了。一般这种东西,把select写得好点,从几十分钟降到十几秒也是正常的。



很多都是游标(甚至可能是嵌套游标)代替了查询,导致的效率低下。

其实楼主应该在统计SQL上下些功夫,减少了循序效率肯定可以高几个级别。
0 请登录后投票
   发表时间:2008-08-16  
存储过程的效率不可能这么差,应该是写法有问题,我们上千万的数据量算法逻辑绝对比你所说的复杂,查询速度也就是1-2分钟
个人建议:
    1。可充分利用oracle 的分析函数
    2。适当的通过一些临时表做缓冲
    3。处理的数据流做下分析,考虑是否可以通过适当的配置界面来减少后台的频繁操作
0 请登录后投票
   发表时间:2008-08-17  
还好我没有这样做,我本想把一些简单的业务放到存储过程中去做.根据上面总结.降低了开发效率.维护效率低.所以还是打算放到java做业务处理.
0 请登录后投票
   发表时间:2008-08-18  
存储过程及数据结构设计的有问题嘛。这么少的业务逻辑要跑10分钟,数据量才百万级。赶快找DBA做优化吧。
0 请登录后投票
   发表时间:2008-08-20  
我的思路与楼主相反,经常把复杂的逻辑运算放到oracle的存储过程去做,经过几年的实践,感觉效果挺不错的,这种思路得到全公司开发人员的认可,顺便说一下我们的数据库规模,核心表从几十万至千万条记录,整个数据库有几十个G。
0 请登录后投票
论坛首页 Java企业应用版

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