0
SQL查詢我運行Postgres的 - 找出從事務ID
select * from pg_lock;
獲得具有排它鎖交易。
一旦我知道具有獨佔鎖定的事務ID,我如何才能找出與該事務相關的SQL查詢。
select * from pg_stat_activity;
給我sql查詢但不是事務ID。
有人可以幫我嗎?
SQL查詢我運行Postgres的 - 找出從事務ID
select * from pg_lock;
獲得具有排它鎖交易。
一旦我知道具有獨佔鎖定的事務ID,我如何才能找出與該事務相關的SQL查詢。
select * from pg_stat_activity;
給我sql查詢但不是事務ID。
有人可以幫我嗎?
您需要加入pid。
-- For PostgreSQL 9.1
select l.pid, l.mode, sa.procpid, sa.current_query
from pg_locks l
inner join pg_stat_activity sa
on l.pid = sa.procpid
where l.mode like '%xclusive%';
-- For PostgreSQL 9.2
select l.pid, l.mode, sa.pid, sa.query
from pg_locks l
inner join pg_stat_activity sa
on l.pid = sa.pid
where l.mode like '%xclusive%';
PID列可連接pg_stat_activity視圖的PID列獲得的會話持有或等待持有每個鎖的更多信息。另外,如果您正在使用準備好的事務,則可以將事務列加入到pg_prepared_xacts視圖的事務列中,以獲取有關保留鎖定的已準備事務的更多信息。 (準備好的事務不能等待一個鎖,但它繼續持有它收購了,同時運行的鎖。)
列可用,列名9.1版本和9.2之間略有不同。