背景:用JAVA JDBC方式连接Oracle数据库查询;
代码:
ps = con.prepareStatement("select * from bigTable",
ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
ps.setFetchSize(Integer.MAX_VALUE);
ps.setFetchDirection(ResultSet.FETCH_REVERSE)
在Mysql时,没有问题,但是适配oracle时,报错:
java.lang.OutOfMemoryError: Java heap space
发现
ps.setFetchSize(Integer.MAX_VALUE);
代码有问题,当将setFetchSize参数放小一点时,就不会报错;但是对于大数据量时,这个查询有非常耗时。
问题:参考什么依据去设置这个参数值?
待研究。。。