1

Ich versuche, einen Blick auf Sperren werfen, die auf spezifischen Tabellen in meiner PostgreSQL-Datenbank geschehen.PostgreSQL finde Sperren einschließlich des Tabellennamens

Ich sehe es gibt eine Tabelle namens pg_locks

select * from pg_locks; 

Was mir zu geben, eine Reihe von Säulen scheint aber ist es möglich, die Beziehung zu finden, weil ich eine der Spalten zu sehen ist die Beziehung oid.

Mit welcher Tabelle muss ich den verknüpfen, um den Beziehungsnamen zu erhalten?

+0

https://wiki.postgresql.org/wiki/Lock_Monitoring –

Antwort

1

Versuchen Sie folgendes:

select nspname,relname,l.* from pg_locks l join pg_class c on 
(relation=c.oid) join pg_namespace nsp on (c.relnamespace=nsp.oid) where 
    pid in (select procpid from pg_stat_activity where 
    datname=current_database() and current_query!=current_query()) 
0

Remy Barons Antwort ist richtig Ich wollte nur ein schreiben kam ich mit auch nur, weil es präziser zu dem, was ich in diesem Fall brauchen

select pg_class.relname, 
     pg_locks.mode 
from pg_class, 
    pg_locks 
where pg_class.oid = pg_locks.relation 
and pg_class.relnamespace >= 2200 
;