O PostgreSQL 8.1 é bem antigo, chegou ao seu tempo de EOL (vide Política de Suporte à Versão do PostgreSQL ). Eu acho que versões mais recentes (por exemplo, 9.0) têm melhor desempenho (especialmente melhor aspiração) e, na minha opinião, é o primeiro passo (é claro que as configurações postgresql.conf e provavelmente kernel / ulimit também são importantes).
Na documentação do PostgreSQL, existe o método particionamento descrito para esse grande (e crescente crescimento) ) tabelas. Pode ser uma solução útil.
de link
Partitioning a table is normally only worthwhile when the size of the table exceeds physical memory.