On Thu, May 7, 2020 at 7:01 PM <reg_pg_stefanz@xxxxxxxxxxxxx> wrote: > > Hi, > > I am confused, the documentation says for pg_stat_database > xact_commit Number of transactions in this database that have > been committed > and somewhere else > txid_current() get current transaction ID, assigning a new one > if the current transaction does not have one > > I would have naively expected txid_current() be more or less in line > with xact_commit, or increasing faster as txid_current() should be > global but xact_commit is per database. > > However xact_commit seems to increases faster than txid_current(), what > am I missing? Are there commits that do not increase the xid number? Indeed, read-only transactions usually don't consume a transaction id, to avoid the need to perform a FREEZE too often. Note that pcalling txid_current() will consume such a transaction id, even in a read only query.