当前位置: 首页 > 知识库问答 >
问题:

为什么H2数据库文件的大小要比数据大小大得多?

高茂
2023-03-14

我有大约500MB的H2数据库。

H2的版本是1.2.147。

数据库的存储引擎是PageStore。

JDBC URL如下所示。

jdbc:h2:file://C:/h2/client;如果存在=真;MVCC=真;数据库\u事件\u侦听器。H2DBMonitor';AUTO_SERVER=TRUE;对数=2

我做了一个版本的H2 1.4.192没有改变数据库的存储引擎。

当我的客户使用数据库时,出现了数据库文件大小扩展到80GB的问题。

当我关闭连接时,数据库文件应该变小,但数据库文件的大小不会变小,可能会变大。

这是1.2.147中不会出现的现象。

这个问题是H2数据库的bug吗?

此外,我从跟踪中得到以下错误。db。

pageStore:无法截断事务日志;大小:462MB

错误是否与此问题有关?

共有1个答案

董奇思
2023-03-14

我对5.2GB数据库文件也有类似的问题。我在H2控制台中执行了以下命令:

shutdown compact

现在我有了一个300MB的文件。也许它能帮你。

有关更详细的步骤:https://stambia.org/kb/17-runtime-issues/147-the-h2-log-database-s-file-won-t-reduce-after-a-session-purge

 类似资料:
  • 我有一个h2数据库文件,文件大小已经增长到5GB。我删除了一些数据以缩小文件的大小。但即使从数据库中删除了一半记录,文件大小仍然保持不变。 我已经尝试了以下所有选项来减少数据库大小,但没有一个对我有用。 我的连接字符串如下所示: 注: 我们正在结清我们已经开始的交易 文件中没有5GB的数据 有人能给我建议一些解决方法或修复方法来减少我的数据库大小吗

  • 问题内容: 我有一个带有1.6Gb日志文件的大约13Gb的SQL Server数据库。但是,当我备份它时,它将创建一个50Gb .bak文件!这是为什么? 我在这里阅读了一些有关事务日志的评论,但是我的数据库在笔记本电脑上运行,并且在备份期间没有数据库活动。(仅需5分钟)。 我的备份类型为“完全”,我的恢复类型为“完全”,并且正在执行“仅复制”备份。有任何想法吗?非常感激! 我正在使用SQL 20

  • 我编写了一个小型infinispan缓存PoC(下面的代码),以尝试评估infinispan的性能。运行它时,我发现对于我的配置,infinispan显然无法从磁盘中清除缓存项的旧副本,导致磁盘空间消耗比预期的要多几个数量级。 如何将磁盘使用率降低到实际数据的大致大小? 以下是我的测试代码: 这是infinispan配置: Infinispan(应该是?)配置为写入缓存,其中包含RAM中的20个最

  • 我搜索了Firebase:只读&非实时模式,为提高浏览器性能而激活,以及其他一些相关站点。我找不到实时数据库的最大文件限制大小。 我知道,这是非常明显的,我们放的JSON文件越小,我们就越实时。请不要评论说“使用小型的实时数据库”。我想知道实时数据库的最大文件大小。

  • 问题内容: 我的redis实例似乎正在变得非常大,我想找出我那里的多个数据库中的哪个消耗了多少内存。Redis的命令仅向我显示了每个数据库的总大小和密钥数,这并没有给我带来太多的了解…因此,在监视Redis服务器时为我提供更多信息的任何工具/想法都将受到赞赏。 Redis文档没有显示任何可以返回某些键消耗的内存的命令,因此我想如果有错误代码会为Redis写很多“废纸t”,这可能很难找到… 问题答案

  • 问题内容: 我试图使用s或函数读取稍大的数据集,但我一直遇到s。数据框的最大大小是多少?我的理解是,只要数据适合内存,数据帧就应该可以,这对我来说不是问题。还有什么可能导致内存错误? 就上下文而言,我试图在《2007年消费者金融调查》中阅读ASCII格式(使用)和Stata格式(使用)。该文件的dta大小约为200MB,而ASCII的大小约为1.2GB,在Stata中打开该文件将告诉我,对于22,