JAVA执行SQL语句,组合成一条和分开执行,哪个效率高些?

gtliao 2008-08-07 02:41:21
例如删除数据:
delete from test where sid=1;
delete from test where sid=2;
delete from test where sid=3;

方法1:
statement.executeUpdate("delete from test where sid=1;delete from test where sid=2;delete from test where sid=3;");
方法2:
statement.executeUpdate("delete from test where sid=1")
statement.executeUpdate("delete from test where sid=2")
statement.executeUpdate("delete from test where sid=3")


哪个执行的效率高些?还是两个一样?
...全文
581 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
martin_zhou 2008-08-07
  • 打赏
  • 举报
回复
差不多时间
gtliao 2008-08-07
  • 打赏
  • 举报
回复
谢谢各位!
galant2008 2008-08-07
  • 打赏
  • 举报
回复
個人覺得應該是第一种方法高
allenney 2008-08-07
  • 打赏
  • 举报
回复
程序不能单纯的从效率角度来考虑。从实际应用的角度来说,分开来更能捕获到数据库的异常,并且对其进行处理。
从效率角度而言,都是delete语句,并没有返回结果集。可能差别会非常非常的微小。

抱歉楼主,没能回答你的问题。因为我没读过statement.executeUpdate()的源码。
matthew221 2008-08-07
  • 打赏
  • 举报
回复
不管怎么说 你这个效率都不是最高的
wjalan 2008-08-07
  • 打赏
  • 举报
回复
有些性能和数库有些关系.
oracle对sql的处理机制.用邦定变量执行的效率要高的多.
但不论怎么说。减少了网络的(open)是把sql组全发送.不是流量的问题。而是打开网络的时间
gtliao 2008-08-07
  • 打赏
  • 举报
回复
没人回答?
6点左右结贴
gtliao 2008-08-07
  • 打赏
  • 举报
回复
回3楼

但是第二个要多次调用executeUpdate方法,第一个只调用一次。

我主要是遇到这个问题:
修改一个表中的数据时,先在该表中删除原数据,然后执行插入操作。如果在一个事务中,则会出现主键重复,(因为一个删除语句还没提交),所以想组合在一起,一次调用executeUpdate方法执行
gtliao 2008-08-07
  • 打赏
  • 举报
回复
。。。我不是说SQL语句的写法问题,上面只是一个例子
是说executeUpdate执行一个组合语句好些,还是分开执行好些
wjalan 2008-08-07
  • 打赏
  • 举报
回复
如果对了。要送分哟。不能失信哟
wjalan 2008-08-07
  • 打赏
  • 举报
回复
就目前的形式来看
第二个减少了网络量流。性能要高些.类似于oracle的pl/sql
chenggm 2008-08-07
  • 打赏
  • 举报
回复
组合成一条效率高些吧
delete from test where sid=1 and sid = 2 and sid = 3
new_bird_0001 2008-08-07
  • 打赏
  • 举报
回复
delete from test where sid in(1,2,3)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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