仮想トランザクションIDの形式は「n/nnnn」です。実際のXIDは単なる整数です。仮想xidの最初の部分は、各接続に固有のバックエンド識別子です。 2番目の部分は、その接続のバックエンドによってトランザクション用に割り当てられた一時的なトランザクションIDです。
VirtualTransactionId
の定義を参照してください src/include/storage/lock.h
内 詳細については。
これらの列は、virtualxid
に対応しているように見えます および/またはtransactionid
およびvirtualtransaction
pg_locks
の列 。 ドキュメント
を参照してください 。
私がその点で正しければ:
- 「TX」は、ロックを保持または待機しているトランザクションの仮想トランザクションIDです。
- 「XID」は、ターゲットが仮想xidの場合、待機中のトランザクションのターゲットとなるトランザクションの仮想トランザクションIDです。 PgAdminでは、通常のxidの場合、ターゲットのxidも表示される場合があります。
仮想トランザクションIDは、PostgreSQLがトランザクションの開始時にすべてのトランザクションに割り当てる一時的な一時的なトランザクションIDです。それらはディスクに記録されません。実際のxidは、トランザクションがディスクへのトランザクション書き込みを必要とする処理を実行した場合にのみ割り当てられます。
リンクされたマニュアルによると: