"maruthi maruthi" <maruthi49@hotmail.com> writes:
> Transaction id is incremented even in sql queries like
> "select" which does not change the state of database, is it not
> unnecesary?.
No, it's not unnecessary. Every DB operation has to have a transaction
ID; what's more, we have to assign one long before we have any idea
whether the transaction will prove to be read-only.
It's at least theoretically possible that we could recycle the
transaction ID of a completed transaction that's proven to be read-only,
but the bookkeeping involved would be far more trouble than it's worth.
Not least because it would break MVCC assumptions about transactions
starting in sequence number order.
regards, tom lane