java程序中写sql语句和存储过程 哪个效率高些 ?

javajdbc 2008-03-13 02:38:41
在编写多层模式时候,用java程序调用sql语句好呢?还是用java调用数据库中的存储过程好呢
哪个效率更高一些 ?
...全文
1647 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanglilin 2011-10-10
  • 打赏
  • 举报
回复
看来还是数据量小的情况下,直接写在程序里了。
gobeyond2000 2008-04-14
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 sky_ccy 的回复:]
我 个人觉得是这样,于数据库的数据交互量有关系,,
小的系统,,在很短的一段时间内只有几十,几百条记录交互的话,用sql那样核算一点了,,比较简单吗,对吧
但像银行了,大型的商用系统了,,很短的一段时间内交互量要有几万,十万呀,那当然要用存储过程核算一点,执行的效力高一点
[/Quote]

大型系统在做海量查询时有其他解决方案。从使用临时表到使用全局索引,在数据库端会有许多特殊处理。而不是使用存储过程解决的。使用存储过程解决的问题往往是纯数据库问题。
gobeyond2000 2008-04-14
  • 打赏
  • 举报
回复
所以建议你在使用存储过程时通盘考虑。
如果你只是编写一个小程序,数据量不大,使用范围不广。建议你采用存储过程。
如果你制作中型程序,而且时间紧迫,没有更多时间考虑时,使用存储过程也是一条快速开发的道路。但是,一旦有时间,还是建议你将存储过程中的内容解偶出来,放在程序中。因为存储过程往往会写入一些业务逻辑,这样做显然和数据库高度耦合,不利于扩展和移植。
制作大型程序时,使用存储过程很谨慎,非到必要时,不使用。
gobeyond2000 2008-04-14
  • 打赏
  • 举报
回复
当然是存储过程更快。
存储过程在数据库内部编译。不需要有任何其他时间开销。

在是通过程序写SQL还是使用存储过程的问题上。速度只是一方面。
另一方面是架构上的考虑。
一般.net程序员倾向于使用存储过程,因为vc/vb/c#和SQL Server几乎是无缝连接。而且决大多数情况不存在移植问题。
java程序员则倾向于使用程序采用标准SQL完成数据库查询。
这样做最大的好处就是可移植。后端不管采用任何数据库,前端只需要修改配置文件,几乎不用修改代码。
但是如果使用存储过程,你就需要考虑万一数据库移植怎么办的问题。从sql server移植到oracle或者mysql,所有的存储过程几乎都要重写一遍。
sky_ccy 2008-04-14
  • 打赏
  • 举报
回复
我 个人觉得是这样,于数据库的数据交互量有关系,,
小的系统,,在很短的一段时间内只有几十,几百条记录交互的话,用sql那样核算一点了,,比较简单吗,对吧
但像银行了,大型的商用系统了,,很短的一段时间内交互量要有几万,十万呀,那当然要用存储过程核算一点,执行的效力高一点
xuxiang19840814 2008-04-13
  • 打赏
  • 举报
回复
存储过程运行快,但依赖性高,还是建议使用sql语句
小五五 2008-04-13
  • 打赏
  • 举报
回复
存储过程对数据库类型依赖性太高了。。
Gump09 2008-04-09
  • 打赏
  • 举报
回复
简单的查询就用sql就好了
复杂的批处理用存储过程
BradenCao 2008-04-09
  • 打赏
  • 举报
回复
统计之类比较复杂的应用建议用存储过程
其它尽量还是用ORMapping吧
毕竟是面向对象编程。
阿甘1976 2008-04-09
  • 打赏
  • 举报
回复
我就不赞成!这样做,系统移植性差,存储过程与数据库结合太紧密.
kingdomofhavean 2008-04-09
  • 打赏
  • 举报
回复
存储过程快,做起来麻烦,尤其是调试程序时。在jsp中方便,我觉得差不多。
javajdbc 2008-04-09
  • 打赏
  • 举报
回复
写 sql2000 的写习惯啦,oracle 的都忘了咋写啦


郁闷~~
goodbetterbest 2008-03-13
  • 打赏
  • 举报
回复
存储过程快一些
hyz270 2008-03-13
  • 打赏
  • 举报
回复
存储过程快一些
Squall1009 2008-03-13
  • 打赏
  • 举报
回复
用PreparedStatement的话应该差不多。
数据库一般会帮你缓存执行计划的。
javajdbc 2008-03-13
  • 打赏
  • 举报
回复
也些有道理,有高手没? 给点评下呗 ???
ee4456 2008-03-13
  • 打赏
  • 举报
回复
看你干什么了,是插入还是删除还是更新,是批量的还是单个,如果不是批量操作的话,几乎没什么区别,如果你仅仅是插入一条数据,也在程序中调用存储过程甚至可能会比直接写SQL还慢。。
我是这样感觉的,不知道说的对不
javajdbc 2008-03-13
  • 打赏
  • 举报
回复
我觉得也是 ,把不必要的工作都交给db来做,查询数据本来就是 db的任务嘛。

再说了,如果交给java程序来执行sql语句 ,繁琐且效率底,


认同不 ??
吴冬冬 2008-03-13
  • 打赏
  • 举报
回复
存储过程 因为是预编译的

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧