当前位置: 代码迷 >> J2EE >> 查询数据库内存不足java.lang.OutOfMemoryError: Java heap space,该怎么处理
  详细解决方案

查询数据库内存不足java.lang.OutOfMemoryError: Java heap space,该怎么处理

热度:269   发布时间:2016-04-22 03:00:51.0
查询数据库内存不足java.lang.OutOfMemoryError: Java heap space
select语句大约查询出来6百万的id,ResultSet貌似都放到内存里了。。导致内存不足
我设置了fetchSize,也不行。求高手指教

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space


Java code
String select = "select itemid from " + ITEMS + " where itemid>91592607 ";            String update = "update " + ITEMS + " set view=? where itemid=?";            int[] iids = new int[5];            try {                pstmt = conn.prepareStatement(select);                pstmt2 = conn.prepareStatement(update);                rs = pstmt.executeQuery();//报错行at GetUserData.main(GetUserData.java:52)                rs.setFetchSize(1000);


------解决方案--------------------
那你就不要一次全查出来 分批查...
------解决方案--------------------
一下取出来这么多干什么
------解决方案--------------------
你用的数据库如果是MsSQL或者是Sybase,JDBC驱动可以换成jtds试试,jtds用到了游标策略。
------解决方案--------------------
6百万跳记录就把你堆空间挤爆了, 加大java使用的内存。 不过一次性趣那么多,不建议你这么做。 肯定是有别的办法的
  相关解决方案