DELETE 不关心您的隔离级别。您得到 243 是因为在您尝试运行删除操作时另一个进程正在锁定表。
我会将您的删除放入 SP 并提交每条第 X 条记录:
CREATE PROCEDURE tmp_delete_sp (
p_commit_records INTEGER
)
RETURNING
INTEGER,
VARCHAR(64);
DEFINE l_current_count INTEGER;
SET LOCK MODE TO WAIT 5; -- Wait 5 seconds if another process is locking the table.
BEGIN WORK;
FOREACH WITH HOLD
SELECT .....
DELETE FROM table WHERE ref = ^^ Ref from above;
LET l_current_count = l_current_count + 1;
IF (l_current_count >= p_commit_records) THEN
COMMIT WORK;
BEGIN WORK;
LET l_current_count = 0;
END IF;
END FOREACH;
COMMIT WORK;
RETURN 0, 'Deleted records';
END PROCEDURE;
那里有一些语法问题,但这对您来说是一个很好的起点。请记住,当您使用更多逻辑日志时,插入和更新会逐渐变慢。