現在実行中のトランザクションのトランザクションIDは、pg_locks
のvirtualxid
とtransactionid
に表示されます。
読み出し専用のトランザクションはvirtualxid
はありますが、transactionid
はNULLです。
一方、読み書きのトランザクションは、両方の列が設定されます。
ロックのタイプによってvirtualxid
を待ちますが、他のタイプのロックはtransactionid
を待ちます。
行レベルの読み書きロックはロックされた行に直接記録され、pgrowlocks拡張を使用して検査できます。
行レベルの読み取りロックはマルチトランザクションID(mxid
。25.1.5.1を参照)の割当ても必要とするかもしれません。