Ich verwende eine Anweisung von dieser Seite , um blockierende Abfragen in Postgres anzuzeigen
SELECT bl.pid AS blocked_pid,
a.usename AS blocked_user,
ka.query AS blocking_statement,
now() - ka.query_start AS blocking_duration,
kl.pid AS blocking_pid,
ka.usename AS blocking_user,
a.query AS blocked_statement,
now() - a.query_start AS blocked_duration
FROM pg_catalog.pg_locks bl
JOIN pg_catalog.pg_stat_activity a ON a.pid = bl.pid
JOIN pg_catalog.pg_locks kl ON kl.transactionid = bl.transactionid AND kl.pid != bl.pid
JOIN pg_catalog.pg_stat_activity ka ON ka.pid = kl.pid
WHERE NOT bl.granted;
Die Abfragen werden jedoch abgeschnitten, sodass ich normalerweise nicht sehen kann, was in der WHERE
Klausel enthalten ist, was das Debuggen dieser Blockierungsprobleme sehr schwierig macht. Gibt es eine Einstellung, in der ich postgres anweisen kann, die vollständigen Abfragen zu protokollieren?pg_stat_activity
quelle