PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wofür stehen TX- und XID-Brüche im Postgres-pgadmin-Tool

Virtuelle Transaktions-IDs haben das Format "n/nnnn". Echte XIDs sind nur Ganzzahlen. Der erste Teil der virtuellen xid ist eine Backend-Kennung, die für jede Verbindung eindeutig ist; der zweite Teil ist eine temporäre Transaktions-ID, die vom Backend dieser Verbindung für ihre Transaktionen zugewiesen wird.

Siehe die Definition von VirtualTransactionId in src/include/storage/lock.h für Details.

Diese Spalten scheinen der virtualxid zu entsprechen und/oder transactionid und virtualtransaction Spalten in pg_locks . Siehe die Dokumentation .

Wenn ich damit richtig liege:

  • "TX" ist die virtuelle Transaktions-ID der Transaktion, die die Sperre hält oder wartet.
  • "XID" ist die virtuelle Transaktions-ID der Transaktion, auf die die wartende Transaktion abzielt, wenn das Ziel eine virtuelle xid ist. In PgAdmin wird möglicherweise auch die xid des Ziels angezeigt, wenn es sich um eine normale xid handelt.

Virtuelle Transaktions-IDs sind temporäre, transiente Transaktions-IDs, die PostgreSQL jeder Transaktion beim Transaktionsstart zuweist. Sie werden nicht auf der Festplatte aufgezeichnet. Eine echte xid wird nur zugewiesen, wenn die Transaktion etwas tut, das ein transaktionales Schreiben auf die Festplatte erfordert.

Gemäß dem verlinkten Handbuch: