执行事务变更时,虚谷数据库报错 SQL错误[14024] [xugu14024]:[E14024] 事物内变更操作次数超过最大许可值
org.jkiss.dbeaver.model.sql.DBSQLException: SQL 错误 [14024] [xugu14024]: [E14024 L3 C2] 事务内变更操作次数超过最大许可值10000,可通过系统参数max_trans_modify适当调整限制
执行如下sql时,虚谷数据库报事务超许可值的错
CREATE table test (id int ,NAME VARCHAR);
BEGIN
FOR i IN 1..100000 LOOP
INSERT INTO test VALUES (i,'test'||i);
END LOOP;
END;
查询虚谷数据库的配置文件后得知,系统参数中存在max_trans_modify参数对事务变更数进行了限制。默认值是10000。
因此,当事务变更数超过一万后,会出现此报错。
解决办法
调整max_trans_modify系统参数,可通过sql命令直接设置,修改后立即生效。
SET max_trans_modify TO 1000000; --设置事务变更最大数为一百万
SET max_trans_modify TO 0; --设置成0后,虚谷数据库不再对事务变更进行数量限制
此参数实际应用时,不建议设置过大,当事务变更量较大耗时久时,如需中断将产生大量回滚段,影响表的正常使用。
建议设置成千万以内,大事务处理时进行分批分桶分区等操作。