PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie finde ich die Abfragen, die eine andere Abfrage blockieren?

Vor dem Ausführen von DROP TABLE , ausführen

SELECT pg_backend_pid();

Dadurch erfahren Sie die Backend-Prozess-ID. Führen Sie dann DROP TABLE aus in derselben Datenbanksitzung .

Dann, wenn DROP TABLE hängt, starten Sie eine neue Sitzung und führen Sie sie aus

SELECT pg_blocking_pids(<backend PID>);

Dann wissen Sie, welche Sitzungen Sie blockieren, und können sie beenden oder weniger störende Maßnahmen ergreifen, um sie loszuwerden.