為避免 .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。
添加回答
舉報
0/150
提交
取消