mailing list: pgsql-admin.postgresql.org
from: Johann Spies
..loaded about 4,900,000,000 in one of two tables with 7200684 in the second table in database ‘firewall’,built one index using one date-field (which took a few days) and used that index to copy about 3,800,000 of those records from the first to a third table,deleted those copied record from the first table and dropped the third table.
This took about a week on a 2xcpu quadcore server with 8Gb RAM..—
Table paritioning is need.
distribute tables across different disks through tablespaces.Tweak the shared buffers and work_mem settings.
RAID5/6 are very,very slow when it comes to small disk *writes*.
At least a hardware RAID controller with RAID 0 or 10 should be used,with 10krpm or 15krpm drives. SAS preferred.
as on SATA the only quick disks are Western Digital Raptor.
look at a view called pg_stat_activity. Do: select * from pg_stat_activity;