开发者社区> 问答> 正文

最近在项目开发过程中通过Db.find或者Db.pro.find查询会出现内存溢出?报错

@JFinal 你好,想跟你请教个问题:最近在项目开发过程中通过Db.find或者Db.pro.find查询会出现内存溢出,查询的结果集大概有4000行左右,字段70多个,只计算数据量的话大概有60多兆的样子,报错java.lang.OutOfMemoryError: Java heap space,有什么好的建议没有?使用原生的javax查询?那样就使用不了Record对象的功能了。

展开
收起
爱吃鱼的程序员 2020-06-14 17:11:54 668 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    为什么不用分页查询是为了导出Excel使用的,前台页面的分页查询没有问题将jvm内存调大点,控制内存空间的占用节奏。如果每次查询都60M,每秒查个几次,没多久必然就OutOfMemoryError了<divclass='ref'>

    引用来自“JFinal”的评论

    将jvm内存调大点,控制内存空间的占用节奏。如果每次查询都60M,每秒查个几次,没多久必然就OutOfMemoryError了Causedby:java.lang.OutOfMemoryError:Javaheapspace
    atjava.lang.String.toLowerCase(String.java:2418)
    atjava.lang.String.toLowerCase(String.java:2497)
    atcom.jfinal.plugin.activerecord.CaseInsensitiveContainerFactory.convertCase(CaseInsensitiveContainerFactory.java:51)
    atcom.jfinal.plugin.activerecord.CaseInsensitiveContainerFactory.access$0(CaseInsensitiveContainerFactory.java:49)
    atcom.jfinal.plugin.activerecord.CaseInsensitiveContainerFactory$CaseInsensitiveMap.put(CaseInsensitiveContainerFactory.java:100)
    atcom.jfinal.plugin.activerecord.RecordBuilder.build(RecordBuilder.java:56)
    atcom.jfinal.plugin.activerecord.Db.find(Db.java:280)
    atcom.jfinal.plugin.activerecord.Db$pro.find(Db.java:897)
    atcom.jfinal.plugin.activerecord.Db$pro.find(Db.java:910)
    数据库是oracle11

    2020-06-14 17:12:13
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
内存取证与IaaS云平台恶意行 为的安全监控 立即下载
云服务器ECS内存增强型实例re6全新发布 立即下载
从理论到实践,深度解析MySQL Group Replication 立即下载