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

postgres truncate ist langsam

TRUNCATE muss shared_buffers leeren für das Abschneiden der Tabelle, und es muss die Verknüpfung mit der alten Datei aufgehoben werden, was auf Dateisystemen mit langsamem Löschen wie ext3 langsam sein kann .

1,5 Stunden sind jedoch ziemlich extrem, da wir normalerweise höchstens von Sekunden sprechen. Es ist sehr wahrscheinlich, dass Sie andere Sitzungen haben, die Sperren für die Tabelle halten, die das TRUNCATE verhindern vom fortfahren. Siehe pg_catalog.pg_locks und pg_catalog.pg_stat_activity .

Der PostgreSQL-Wiki-Artikel zur Sperrüberwachung sollte nützlich sein.

Siehe auch:Postgresql-Trunkierungsgeschwindigkeit