gpt4 book ai didi

从数据库获取记录时出现java.lang.OutOfMemory错误

转载 作者:行者123 更新时间:2023-12-01 16:41:15 26 4
gpt4 key购买 nike

当我尝试获取大约 20,000 条记录并返回到 ArrayList 时,它会抛出 java 堆空间错误。

   JdbcTemplate select = new JdbcTemplate(dataSource);
String SQL_SELECT_XML_IRP_ADDRESS = " SELECT * FROM "+ SCHEMA +".XML_ADDRESS "+
" WHERE FILE_NAME = ? ";
Object[] parameters=new Object[] {xmlFileName};
return (ArrayList<XmlAddressDto> ) select.query(SQL_SELECT_XML_ADDRESS,
parameters,new XmAddressMapExt());

我们的数据库是Oracle并使用oracle瘦驱动程序。
有什么解决办法吗?我应该如何有效地处理这个问题?

最佳答案

如果不了解系统的详细信息,很难给出答案,但有一些选择:

  • 增加 JVM 的内存(请参阅有关 SO 的许多其他问题)
  • 避免一次处理所有记录;尝试获取查询的一个子集,对其进行处理,然后重复,而不是一次吞入所有内容
  • 尝试减少读取的数据量:您真的需要执行 SELECT * 操作吗?

关于从数据库获取记录时出现java.lang.OutOfMemory错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2477571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com