database - 内存中的 H2 DB 清理 RAM

标签 database h2 ram in-memory

我在内存模式下使用 H2 DB 来处理一些数据。我的 Java 应用程序需要在每次运行时删除和重新创建或截断或删除 H2 DB 中的所有对象时保持 JVM 开启。因此,我需要在数据库 URL 中使用选项“DB_CLOSE_DELAY=-1”。

为了在迭代后清理内存,我尝试使用“DROP ALL OBJECTS”、“DROP ALL OBJECTS DELETE FILES”并逐个截断每个表。所有这些都实现了我想要的,并没有删除它当前占用的内存。我的数据库大小从大约 300MB 到 2GB 不等。因此,在单次迭代后,我的 RAM 被占用了大约 1GB,并且没有找到任何解决方案来解决这个问题或解决方案。

有点类似于这个Clear the in memory database after every testcase .但是没有 dbUnit,也需要清除 RAM。

是否可以在不停止 JVM 的情况下执行此操作。

谢谢。

最佳答案

您可以执行语句shutdown。这将关闭连接和数据库。

关于database - 内存中的 H2 DB 清理 RAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14812070/

相关文章:

mysql - 如何编写有效的 "SELECT a FROM t WHERE b IN() ORDER BY a"查询?

python - 合并数据框的特定行并删除未使用的行

mysql - 排行榜排名的计数语句的成本?

h2 - 如何为 'production' 制作一个嵌入了 H2 的 JHipster 演示

java - DataJpaTest 不创建架构

database - 各大数据库 "GenerationType.AUTO"究竟选择了什么策略?

Apache 不提供 H2

MySQL – RAM 大小是否足够?

python - 为什么我的测试 sqlite 数据库的 'filling' 占用了这么多 RAM 并且没有保存任何内容?

python - python 中的大型对称列表 : will references contribute to size in ram?