问题描述
greenplum做update时提示Using too many subtransactions in one transaction
WARNING: Using too many subtransactions in one transaction. (seg2 10.75.2.146:40002 pid=343024)
HINT: Close open transactions soon to avoid wraparound problems.
CONTEXT: PL/pgSQL function gpload.f_codemapping(character varying,character varying,character varying,character varying) line 4 during statement block entry
解答
数据库事务号(xid)增长太快,数据库年龄就会增长太快,数据库年龄太大就要对年龄大的表执行vacuum freeze,以免影响数据可见性判断。一般事务号超过4亿就要做处理,正常忽略就行。
--查询数据库年龄
select datname,age(datfrozenxid) from pg_database;