用Stored Proc的好处是可以给非EJB应用程序调用。至于快不快我不知道,你测试好了,然后告诉大家。我觉得Java很多东西是以牺牲速度来换取系统扩展性和移植性的。
把企业逻辑放在Stored Proc里是不是破坏了系统结构,加大了数据库与企业逻辑的偶合性,从而使得系统的移植性降低?另外,很多人说过度地把企业逻辑放在Stored Proc反而会降低整体系统的性能,数据库这种瓶颈在系统中是越少碰越好,大量的Stored Proc会加重数据库的负担,使这个瓶颈越来越窄,影响系统整体性能。
把企业逻辑放在Stored Proc里是不是破坏了系统结构,加大了数据库与企业逻辑的偶合性,从而使得系统的移植性降低?另外,很多人说过度地把企业逻辑放在Stored Proc反而会降低整体系统的性能,数据库这种瓶颈在系统中是越少碰越好,大量的Stored Proc会加重数据库的负担,使这个瓶颈越来越窄,影响系统整体性能。
1、处理大量数据密集型操作时,Stored Proc能减少网络上的交互,因此提高了性能;
2、对那些非EJB的应用程序,Stored Proc提供了实施企业逻辑的空间
如果你开发用sqlserver,而以后又用orical,怎么办?
因此在数据库不移植的情况下你的问题才有意义。前提:数据库不移植
使用store p使得数据存取逻辑出现的位置分散,系统封装性破坏,且维护困难,而且简单的数据查询工作决不建议使用store p,因为此时直接sql调用和store p区别不大,特别是使用preparedstatement的情况下速度差别更小。
但是如果存在复杂逻辑过程处理,特别是需要交互且交互过程中出现了大量数据传递时,如果能使用store p则既可以因预编译的存在降低实时sql处理的时间浪费,又避免了大量数据传递占用的网络带宽和出现的延时性,这时的差别就天差地远了。
所以只建议在出现复杂逻辑过程处理或者系统预处理的时候使用store p,其它时候不建议使用。至于什么专家说着说那,别信它胡扯。哪儿来的一个什么破专家?它说取消就取消?kao
就象我上面说的,Stored Proc给那些非EJB应用程序用挺好的,很多旧系统因此就建立在Stored Proc上。如果你们的项目仍旧沿用旧数据库,又要保持原有旧应用程序照常运转,那一定是Stored Proc和EJB混用了。这没什么大不了的,很多项目都这样。