javaframe的gravatar头像
javaframe 2015-06-02 10:07:08

查询Oracle数据库10W数据量时内存溢出,抛出java.lang.OutOfMemoryError: Java heap space,如何解决?

查询oracle数据库数据大概60W条数据,但是每10K条数据查询也是出现java.lang.OutOfMemoryError: Java heap space错误情况。还有导出excel也是一样的错误。网上找了很多关于tomcat内存参数设置和jdk的vm设置还是无效,昨天弄了一天还是无法解决,在好多群里问了,也没有人能提供好的解决方法。所以上到网站想请教大神们寻找解决方案。此问题网上找遍了方法还是无法解决。查询Oracle数据库10W数据量时内存溢出,抛出java.lang.OutOfMemoryError: Java heap space,如何解决?

所有回答列表(6)
遇见,的gravatar头像
遇见,  LV36 2015年6月2日

catalina.bat文件加入set JAVA_OPTS=-Xms256m -Xmx512m -Djava.awt.headless=true [-XX:MaxPermSize=128M]

如果是linux就是catalina.sh

tengcc的gravatar头像
tengcc  LV7 2015年6月2日

一次查10W的数据,没用分页

大懒虫的gravatar头像
大懒虫  LV16 2015年6月2日

 你可以用到批量读取的方式,先把获取的数据存到一个零时文件里面去,之后再以流的方式读取出来,这样的话,就不会报内存溢出了。   --   仅供参考

凌云青草香的gravatar头像
凌云青草香  LV7 2015年6月5日

这个主要是你的代码问题,如果你的代码无限生成对象,那么你内存配置的再大都会报错的,检查一下你的代码,将生产大量对象的代码好好优化下,减少java对象的生成,尤其是循环的代码块要特别注意,不懂怎么操作继续问我

zamn的gravatar头像
zamn  LV9 2015年6月12日

查询Oracle数据库10W数据量时内存溢出,抛出java.lang.OutOfMemoryError: Java heap space,如何解决?window下面设置是这样的。不用设置initial memory pool、maximum memory pool 、thread stack size。上面的设置只要最大内存不超出物理内存的4/1都没事。如果这样还不行、那可能得优化下你代码了

fuhp的gravatar头像
fuhp 2016年5月31日

建议批量读取数据放到NoSQL中,然后再从NoSQL中读取。

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友