【JDBC】使用PreparedStatement.executeBatch(),向Oracle批量提交数据时出现的神秘数字和怪现象


如果使用PreparedStatement.executeBatch()向DB批量提交数据,比如一次提交一万条,总数两百万条,总共要提交两百次。

在循环提交的同时,使用sqlplus打开目标端的数据库连接,使用select count(*) from table连续观察记录数,

会发现count是这样的:13013,1270127,1240124.....,为什么其数字是10000*n+n的形式呢?

另外发现,在连续提交中,有一定几率卡死在某个数字上,如1270127,然后任凭你敲多少次select count(*) from table,始终得到1270127这个数字,同时循环批量提交还未结束......我感觉,循环批量提交程序在提交后等待DB的反馈,但DB已经不再回应了。

这种情况不是常发生,概率较小,但总能遇上。

先记录在此,以后有了结论再补充。

END

相关