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