TRUNCATE
deve svuotare shared_buffers
per la tabella viene troncata e deve scollegare il vecchio file, che può essere lento su file system con eliminazione lenta come ext3
.
1,5 ore è piuttosto estremo, dato che di solito parliamo di secondi al massimo. È molto probabile che tu abbia altre sessioni con blocchi sul tavolo che impediscono il TRUNCATE
dal procedere. Vedi pg_catalog.pg_locks
e pg_catalog.pg_stat_activity
.
L'articolo wiki di PostgreSQL sul monitoraggio dei blocchi dovrebbe essere utile.
Vedi anche:Velocità di troncamento Postgresql