TRUNCATE
måste spola shared_buffers
för tabellen som trunkeras, och den måste ta bort länken till den gamla filen, vilket kan vara långsamt på filsystem med långsam radering som ext3
.
1,5 timme är dock ganska extremt, då vi brukar prata om sekunder som mest. Det är mycket troligt att du har andra sessioner som håller lås på bordet som förhindrar TRUNCATE
från att fortsätta. Se pg_catalog.pg_locks
och pg_catalog.pg_stat_activity
.
PostgreSQL-wikiartikeln om låsövervakning borde vara användbart.
Se även:Postgresql trunkeringshastighet