为了账号安全,请及时绑定邮箱和手机立即绑定

HSQLDB - 在 DELETE 之后自动执行 CHECKPOINT

HSQLDB - 在 DELETE 之后自动执行 CHECKPOINT

小怪兽爱吃肉 2022-11-02 16:04:17
为避免 .lob 文件增长,我知道有必要CHECKPOINT在删除具有 LOB 列的表中的行后执行。我尝试通过以下方式自动执行此操作:查看文档以获取执行此操作但找不到任何选项的选项。有,SET FILES LOG SIZE但与我想要的完全不同。像这样创建触发器:CREATE TRIGGER MY_TRIGGER AFTER DELETE ON MY_TABLE    BEGIN ATOMIC      CHECKPOINT;    END但 HSQLDB 抱怨这CHECKPOINT不是一个有效的令牌。有什么建议么?
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

HSQLDB 不允许在触发器代码中使用 CHECKPOINT 等系统命令。

已删除 LOB 的空间在检查点被释放,并在以后重复使用。

您可以通过减少日志大小设置来更频繁地执行检查点。最小设置 1 会在日志大小达到 1 MB 时生成自动检查点。

SET FILES LOG SIZE 1

由于 1 MB 的已记录 DDL 语句可能会导致 .lobs 文件的大小大幅增长,因此替代方法是计算已执行的 DELETE 语句并在计数达到阈值时从您的应用发出 CHECKPOINT。


查看完整回答
反对 回复 2022-11-02
  • 1 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信