尽管有检查点,lobs 文件大小仍在增加

问题描述

我正在构建一个交通信息服务,它轮询上游消息源并将它们存储到以服务器模式运行的 HsqlDB 数据库中。

上游源每 5-60 分钟轮询一次。消息以 CLOB 形式存储,如果过期或被替换,则将其删除

任务每分钟删除已过期的消息,执行 DELETE 语句后跟 CHECKPOINT DEFRAG

所有这些操作都发生在永久运行的 Java 应用程序中。数据库也永久开放。

消息的数量(及其组合大小)相当稳定。但是,有许多更改可能会导致消息被新消息替换。

我相信已经从其他 SO 答案中了解到,已删除 LOB 的空间被释放以供新 LOB 使用,CHECKPOINT 告诉 HsqlDB 现在是进行此类垃圾收集的好时机.

但是,LOB 文件不断增长。在大约一个小时的时间里,它的大小从 184 MB 增加到 368 MB,即大约翻了一番。似乎可用空间没有得到重用,但更多的空间被占用了。

我做错了吗?如果是,那是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)