gpt4 book ai didi

java - 使用 Java 从 Oracle DB 获取 200,000 条记录时出现 OOM 错误

转载 作者:太空宇宙 更新时间:2023-11-04 07:14:29 25 4
gpt4 key购买 nike

我的 Java 应用程序在其结果集中获取大约 200,000 条记录。

尝试从 Oracle DB 获取数据时,服务器抛出 java.lang.OutOfMemoryError: Java heap space

解决这个问题的一种方法,IMO,是以较小的 block 从数据库中获取记录(例如每次获取 100,000 条记录,甚至更小的数量)。我该如何做到这一点(意味着使用什么 API 方法)?

请建议如何执行此操作,或者如果您认为有更好的方法来克服此内存空间问题,请提出建议。我不想使用像 -Xmx 这样的 JVM 参数,因为我读到这不是处理 OutOfMemory 错误的好方法。

最佳答案

如果您使用 Oracle DB,您可以设置 AND ROWNUM < XXX到您的 SQL 查询。这将导致查询中仅获取 XXX-1 行。

其他方式是调用statement.setFetchSize(xxx)执行语句之前的方法。

设置更大的 JVM 内存池不是一个好主意,因为将来可能会有更大的数据集,从而导致 OOM。

关于java - 使用 Java 从 Oracle DB 获取 200,000 条记录时出现 OOM 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20164312/

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