论坛首页 综合技术版 Database

存储过程真的好快!

浏览 17604 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
最后更新时间:2008-04-29
魔力猫咪 写道
后头有你叫的时候。大量业务写入存储过程,对调试和修改均极为不方便。我觉得你这种业务用缓存的方式解决最好。处理一次,缓存起来。没了查询数据库,不是更快。等缓存失效了,才需要二次运算。缓存时限可以根据你的需求定,哪怕有1分钟,对高并发的访问都是可以大大缓解的。


文档和注释写得好,同时开发人员呱呱叫,SP同样可以做得和语言一样好。不要一棒子打死
   
0 请登录后投票
最后更新时间:2008-04-29
N年前大量的业务逻辑程序就是存储过程干的。除了调试不方便外,用存储过程业务法满足跨数据库的需要,今天A客户用ORacle,明天B客户用sybase。这个问题如何解决?
另外大量采用存储过程进行业务逻辑的开发致命的缺点是很多存储过程不支持面向对象的设计,无法采用面向对象的方式将业务逻辑进行封装,从而无法形成通用的可支持复用的业务逻辑框架。
不过,在对性能影响较大的时候在局部采用一个存储过程也可以的,但是目前几乎很少碰到性能到了用户无法接受情况。
我所见到的有些系统大量采用了存储过程,由于对游标等对象操作不当,导致系统整体性能不佳的情况框也很多。上千行乃至几千行的存储过程在这些系统中比比皆是,最后导致很难维护。
   
0 请登录后投票
最后更新时间:2008-04-29
用不用存储过程,主要从网络传输和性能方面考虑。
数据库移值不用考虑这些了(谁没事总移来移去的,再说存储过程的重写没有想的那样恐怖)。
把存储过程用在适合使用的地方!
   
0 请登录后投票
最后更新时间:2008-04-29
最近在看thomas kyte的oracle10g的书。他是倾向业务写在存储过程的。
而我之前看的一些java高手写的书,都是倾向于业务写在java代码中的。
thomas是高手吗?当然是。
spring的作者是高手吗?当然也是。
为撒他们的一些经验之谈有如此大的反差呢?

bluemeteor的话我觉得最中肯。这个关键是要看你的团队的技术实力了。
如果作为系统设计者最好能数据库和语言方面都深入了解,才能选择相对比较优化的方案。
   
0 请登录后投票
最后更新时间:2008-04-29
hyhongyong 写道
用不用存储过程,主要从网络传输和性能方面考虑。
数据库移值不用考虑这些了(谁没事总移来移去的,再说存储过程的重写没有想的那样恐怖)。
把存储过程用在适合使用的地方!


当然,只给一个客户做项目可以不考虑这些。给多个不同的客户做项目你试试看。不具备跨数据库能力直接影响市场发展。
   
0 请登录后投票
最后更新时间:2008-04-30
魔力猫咪 写道
后头有你叫的时候。大量业务写入存储过程,对调试和修改均极为不方便。我觉得你这种业务用缓存的方式解决最好。处理一次,缓存起来。没了查询数据库,不是更快。等缓存失效了,才需要二次运算。缓存时限可以根据你的需求定,哪怕有1分钟,对高并发的访问都是可以大大缓解的。




恰恰相反,对修改特别方便!特别是以后部署后想修改。

调试成本跟jdbc 直接调用sql没区别。
   
0 请登录后投票
最后更新时间:2008-04-30
NetBus 写道
魔力猫咪 写道
后头有你叫的时候。大量业务写入存储过程,对调试和修改均极为不方便。我觉得你这种业务用缓存的方式解决最好。处理一次,缓存起来。没了查询数据库,不是更快。等缓存失效了,才需要二次运算。缓存时限可以根据你的需求定,哪怕有1分钟,对高并发的访问都是可以大大缓解的。




恰恰相反,对修改特别方便!特别是以后部署后想修改。

调试成本跟jdbc 直接调用sql没区别。

怎么给存储过程打断点呢?
   
0 请登录后投票
最后更新时间:2008-04-30
oracle 的很多工具可以支持存储过程断点调试
数据库跨平台?可能是我工作的年头少,6年来还没见过,而且越是大项目越是数据库平台绑定的。
如果考虑数据库跨平台可以考虑多版本数据库sql实现的方法
至于代码容易混乱的问题和sql没关系。这个是人的问题,用Java一样能写的乱
thomas kyte 的那本oracle体系结构 建议搞Java的人也看看。
   
0 请登录后投票
最后更新时间:2008-04-30
phlsbg 写道
oracle 的很多工具可以支持存储过程断点调试
数据库跨平台?可能是我工作的年头少,6年来还没见过,而且越是大项目越是数据库平台绑定的。
如果考虑数据库跨平台可以考虑多版本数据库sql实现的方法
至于代码容易混乱的问题和sql没关系。这个是人的问题,用Java一样能写的乱
thomas kyte 的那本oracle体系结构 建议搞Java的人也看看。



哦,我工作9年了,没做过多大的项目,都是电力系统方面的。同样一个用电营销系统,就要有for oracle,for sybase的。至于说“越是大项目越是数据库平台绑定的。”我倒觉得有点意思,因为那种大项目对于客户来说可能就一次,对于给不同客户开发的项目开发商,如果都用一种数据库要看看用户是否答应了,万一用户让你绑死在Sybase上怎么办呢?oracle虽然好,但是oracle也有不同的版本,对于老一点的 oracle8不知道是否支持存储过程打断点。
   
0 请登录后投票
最后更新时间:2008-04-30
呵呵,这是一场口水仗

我还是认为做多版本sql要比把所有业务写在java中好
thomas kyte 的那本中说过同一套sql到不同数据库上执行可能会得到不同结果,这个问题就是大问题了。
www.open-open.com上面有几个开源的ERP、CRM系统都是采用多版本sql实现的方式。
   
0 请登录后投票
论坛首页 综合技术版 Database

跳转论坛:
JavaEye推荐