TRUNCATE musi opróżnić shared_buffers dla obcinanej tabeli i musi odłączyć stary plik, co może być powolne w systemach plików z powolnym usuwaniem, takim jak ext3 .
1,5 godziny jest jednak dość ekstremalne, ponieważ zwykle mówimy najwyżej o sekundach. Jest bardzo prawdopodobne, że masz inne sesje blokujące tabelę, które uniemożliwiają TRUNCATE z postępowania. Zobacz pg_catalog.pg_locks i pg_catalog.pg_stat_activity .
Artykuł wiki PostgreSQL na temat monitorowania blokad powinno być przydatne.
Zobacz też:Szybkość obcinania Postgresql