sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Qué significan las fracciones TX y XID en la herramienta pgadmin de postgres?

Los ID de transacciones virtuales tienen el formato "n/nnnn". Los XID reales son solo números enteros. La primera parte del xid virtual es un identificador de back-end que es único para cada conexión; la segunda parte es una identificación de transacción temporal asignada por el backend de esa conexión para sus transacciones.

Ver la definición de VirtualTransactionId en src/include/storage/lock.h para más detalles.

Esas columnas parecen corresponder al virtualxid y/o transactionid y virtualtransaction columnas en pg_locks . Consulte los documentos .

Si estoy en lo cierto, entonces:

  • "TX" es el ID de transacción virtual de la transacción que retiene o espera el bloqueo.
  • "XID" es el ID de transacción virtual de la transacción objetivo de la transacción en espera, si el objetivo es un xid virtual. En PgAdmin también puede mostrar el xid del objetivo si es un xid normal.

Los ID de transacción virtual son ID de transacción transitorios y temporales que PostgreSQL asigna a cada transacción al inicio de la transacción. No están grabados en disco. Solo se asigna un xid real cuando la transacción hace algo que requiere una escritura transaccional en el disco.

Según el manual vinculado: