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