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