精华帖 (2) :: 良好帖 (2) :: 新手帖 (15) :: 隐藏帖 (5)
|
|
---|---|
作者 | 正文 |
发表时间:2008-08-12
athene11 写道 从LZ的描述看,应该是存储过程中select语句或者其它语句的关联有性能问题。
我赞同这个观点。是存储过程的语句有问题。 |
|
返回顶楼 | |
发表时间:2008-08-15
不知道楼主是不是想描述这样的问题。
单记录计算量复杂,取的数据相对简单。 写在JAVA里集群计算效率提高是很明显,多应用同时做。 偶在电信行业,即使存储过程也是会做成各区块分开计算,同时跑。 我们的数量至少是500W以上 |
|
返回顶楼 | |
发表时间:2008-08-15
jjx 写道 icewubin 写道 jjx 写道 其实一些人轻视存储过程,只不过是在掩盖自己对sql 方面的无知
sql 中的学问大着呢,很多都涉及到 算法问题 说话不要随便上纲上线,你对数据结构和算法了解多少呢?存储过程中的算法占整个计算机算法的领域能有多少呢? 你又是怎么知道别人是轻视呢?别人要掩盖呢?我还能说你只不过是在掩盖自己对JVM的无知,对数据结构的无知等等。这种话说了有意义么?你怎么不说大家都轻视操作系统和编译原理呢? 每一种语言,每一种算法,每一种策略都有自己的领域和应用场景,而且随着研究的深入,各自都能有不同的发展,没什么一种语言能包办所有的事情的。 每一个技术人员,精力也是有限的,有的选择了Unix C,有的选择了Java,有的选择了Linux内核,有的选择了.net,有的选择了ROR等等,因素有很多,难道这个世界上只有存储过程么? 了解的比你少,总行了吧,火气干嘛这么大 我只是指某些人,这些人大多只懂得select,delete ,update而已. 这是事实,再说做系统内核或是搞驱动,做单片机的的会在这里讨论sql吗?做企业数据库应用,那个又能回避sql呢.,我做程序已经超过10年,唯一可以自夸的是见过的人比你多 或许你见过的人比我更多也说不定,那么就算了,你正确. 呵呵,不用搞的这么不开心 是呀!现在软件开发细分得越来越明显了.不再象以前一本经书读到老. |
|
返回顶楼 | |
发表时间:2008-08-15
存储过程很好啊,有变动改一下编译一下马上就生效了。哈哈。效率绝对好,你的10分钟绝对是写程序的太烂了
|
|
返回顶楼 | |
发表时间:2008-08-15
写存储过程比较常见的错误是:
loop over a cursor select foo from table where x=loopVar 这种东西不慢就出鬼了。一般这种东西,把select写得好点,从几十分钟降到十几秒也是正常的。 |
|
返回顶楼 | |
发表时间:2008-08-16
ajoo 写道 写存储过程比较常见的错误是:
loop over a cursor select foo from table where x=loopVar 这种东西不慢就出鬼了。一般这种东西,把select写得好点,从几十分钟降到十几秒也是正常的。 顶 很多都是游标(甚至可能是嵌套游标)代替了查询,导致的效率低下。 其实楼主应该在统计SQL上下些功夫,减少了循序效率肯定可以高几个级别。 |
|
返回顶楼 | |
发表时间:2008-08-16
存储过程的效率不可能这么差,应该是写法有问题,我们上千万的数据量算法逻辑绝对比你所说的复杂,查询速度也就是1-2分钟
个人建议: 1。可充分利用oracle 的分析函数 2。适当的通过一些临时表做缓冲 3。处理的数据流做下分析,考虑是否可以通过适当的配置界面来减少后台的频繁操作 |
|
返回顶楼 | |
发表时间:2008-08-17
还好我没有这样做,我本想把一些简单的业务放到存储过程中去做.根据上面总结.降低了开发效率.维护效率低.所以还是打算放到java做业务处理.
|
|
返回顶楼 | |
发表时间:2008-08-18
存储过程及数据结构设计的有问题嘛。这么少的业务逻辑要跑10分钟,数据量才百万级。赶快找DBA做优化吧。
|
|
返回顶楼 | |
发表时间:2008-08-20
我的思路与楼主相反,经常把复杂的逻辑运算放到oracle的存储过程去做,经过几年的实践,感觉效果挺不错的,这种思路得到全公司开发人员的认可,顺便说一下我们的数据库规模,核心表从几十万至千万条记录,整个数据库有几十个G。
|
|
返回顶楼 | |