TRUNCATE
трябва да изчисти shared_buffers
за таблицата, която се съкращава, и тя трябва да прекрати връзката на стария файл, което може да бъде бавно при файлови системи с бавно изтриване като ext3
.
1,5 часа обаче е доста екстремно, тъй като обикновено говорим най-много за секунди. Много е вероятно да имате други сесии, държащи ключалки на таблицата, които предотвратяват TRUNCATE
от процедиране. Вижте pg_catalog.pg_locks
и pg_catalog.pg_stat_activity
.
Статията на PostgreSQL wiki за наблюдение на заключване трябва да е полезно.
Вижте също:Скорост на съкращаване на Postgresql