PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Какво означават дробите TX и XID в инструмента pgadmin на postgres

Виртуалните идентификатори на транзакции имат формат "n/nnnn". Реалните XID са просто цели числа. Първата част на виртуалния xid е бекенд идентификатор, който е уникален за всяка връзка; втората част е временен идентификатор на транзакция, зададен от бекенда на тази връзка за нейните транзакции.

Вижте дефиницията на VirtualTransactionId в src/include/storage/lock.h за подробности.

Изглежда, че тези колони съответстват на virtualxid и/или transactionid и virtualtransaction колони в pg_locks . Вижте документите .

Ако съм прав в това, тогава:

  • "TX" е идентификаторът на виртуалната транзакция на транзакцията, която държи или чака заключването.
  • "XID" е идентификаторът на виртуалната транзакция на транзакцията, към която е насочена чакащата транзакция, ако целта е виртуален xid. В PgAdmin може също да показва xid на целта, ако е нормален xid.

Идентификаторите на виртуални транзакции са временни, преходни идентификатори на транзакции, които PostgreSQL разпределя за всяка транзакция при стартиране на транзакция. Не са записани на диск. Истински xid се разпределя само когато транзакцията прави нещо, което изисква транзакционно записване на диск.

Според свързаното ръководство:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да стартирам тестове в django, използвайки база данни с данни?

  2. Как да заявите сумата на предишния ред на същата колона с pgSql

  3. Вземете името на изходната таблица на реда, когато отправяте заявка към родителя, от който той наследява

  4. Generate_series в Postgres от начална и крайна дата в таблица

  5. очевидно нарушение на изолацията на транзакция в postgresql