TRUNCATE musí vyprázdnit shared_buffers pro tabulku, která je zkrácena, a musí odpojit starý soubor, což může být pomalé na souborových systémech s pomalým mazáním, jako je ext3 .
1,5 hodiny je ale docela extrém, protože obvykle mluvíme maximálně o sekundách. Je vysoce pravděpodobné, že máte jiné relace držící zámky na stole, které zabraňují TRUNCATE od postupu. Viz pg_catalog.pg_locks a pg_catalog.pg_stat_activity .
Článek na wiki PostgreSQL o monitorování zámků by mělo být užitečné.
Viz také:Rychlost zkrácení Postgresql