increase of xact_commit vs txid_current

Started by Nonamealmost 6 years ago2 messagesgeneral
Jump to latest
#1Noname
reg_pg_stefanz@perfexpert.ch

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?

Thanks
Stefan

#2Julien Rouhaud
rjuju123@gmail.com
In reply to: Noname (#1)
Re: increase of xact_commit vs txid_current

On Thu, May 7, 2020 at 7:01 PM <reg_pg_stefanz@perfexpert.ch> 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.