Java HSQLDB-删除后自动执行检查点

Java HSQLDB-删除后自动执行检查点,java,sql,hsqldb,rdbms,Java,Sql,Hsqldb,Rdbms,为了避免.lob文件增长,有必要在删除具有lob列的表中的行后执行检查点 我尝试通过以下方式实现自动化: 查看文档中的一个选项,该选项可以执行此操作,但找不到任何选项。有设置文件日志大小,但它与我想要的大不相同 创建如下触发器: CREATE TRIGGER MY_TRIGGER AFTER DELETE ON MY_TABLE BEGIN ATOMIC CHECKPOINT; END 但是HSQLDB抱怨检查点不是有效的令牌 有什么建议吗?HSQLDB不允许系

为了避免.lob文件增长,有必要在删除具有lob列的表中的行后执行检查点

我尝试通过以下方式实现自动化:

  • 查看文档中的一个选项,该选项可以执行此操作,但找不到任何选项。有
    设置文件日志大小
    ,但它与我想要的大不相同

  • 创建如下触发器:

    CREATE TRIGGER MY_TRIGGER AFTER DELETE ON MY_TABLE  
      BEGIN ATOMIC  
        CHECKPOINT;  
      END
    
    但是HSQLDB抱怨检查点不是有效的令牌


有什么建议吗?

HSQLDB不允许系统命令,如触发器代码中的检查点

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

通过减少日志大小设置,可以更频繁地执行检查点。当日志大小达到1 MB时,最小设置1会导致自动检查点

SET FILES LOG SIZE 1
由于1 MB的已记录DDL语句可能会导致.lobs文件的大小大幅增长,因此另一种方法是对已执行的DELETE语句进行计数,并在计数达到阈值时从应用程序发出检查点