java.sql.Statement 的批处理问题

lizzz 2004-12-28 09:21:12
请问在用Statement的executeBatch()的时候对Batch的语句容量是否限制?在什么情况下用Batch才会有较好的性能优化?
...全文
156 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sboom 2004-12-28
  • 打赏
  • 举报
回复
有限制,连接后你可以用
DataBaseMetaData dbmd=Connection.getMetaData();
dbmd.supportsBatchUpdates() //数据库是否支持BatchUpdates

BatchUpdate是本地级的,和事务不同,事务是数据库系统级的,事务是传送到数据库后由数据库登记,然后commit一次确认,BatchUpdate是本机缓存,本机缓存满后一次传送几个SQL语句到数据库,数据库不负责事务完整性.事务是为了保证事务完整性,BatchUpdate是为了节省网络传送次数.

JDBC默认UpdateBatch是5个语句,Oracle的扩展JDBC才可以设置UpdateBatch的缓存数量,其他似乎不可以设置.
lizzz 2004-12-28
  • 打赏
  • 举报
回复
另外,如果对这个过程加上一个事物的控制(手工提交),这个过程如果有限制也只能是事物日志容量的限制,对吗?

62,635

社区成员

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

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