[H2数据库Java堆问题

问题描述 投票:0回答:1

我们的应用程序使用java spring boot将数据从avro文件加载到内存h2数据库中。我要插入145000000行,并且出现Java堆错误。它可以处理200万行。如何解决此问题?

以下错误粘贴原因:org.h2.jdbc.JdbcSQLNonTransientConnectionException:内存不足。 SQL语句:在org.h2.message.DbException.getJdbcSQLException(DbException.java:617)〜[h2-1.4.199.jar:1.4.199]在org.h2.message.DbException.getJdbcSQLException(DbException.java:427)〜[h2-1.4.199.jar:1.4.199]在org.h2.message.DbException.get(DbException.java:194)〜[h2-1.4.199.jar:1.4.199]在org.h2.message.DbException.convert(DbException.java:341)〜[h2-1.4.199.jar:1.4.199]在org.h2.command.Command.executeUpdate(Command.java:278)〜[h2-1.4.199.jar:1.4.199]在org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:233)〜[h2-1.4.199.jar:1.4.199]在org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:205)〜[h2-1.4.199.jar:1.4.199]在com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95)〜[HikariCP-3.2.0.jar:na]在com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java)〜[HikariCP-3.2.0.jar:na]在org.springframework.jdbc.datasource.init.ScriptUtils.executeSqlScript(ScriptUtils.java:488)〜[spring-jdbc-5.1.5.RELEASE.jar:5.1.5.RELEASE]...省略了86个通用框架造成原因:java.lang.OutOfMemoryError:Java堆空间

java spring-boot heap h2
1个回答
0
投票

您正在尝试将1.45亿行加载到内存中。因此,您显然需要给JVM更多的内存来处理该数量的存储。

考虑添加/更改-Xmx JVM参数以分配更多的内存。请参阅此处以获取更多信息:

What are the -Xms and -Xmx parameters when starting JVM?

© www.soinside.com 2019 - 2024. All rights reserved.