Após as sugestões do user30184 , Paul Ramsey e minhas próprias experiências. Eu decidi responder a esta pergunta.
Não mencionei nesta pergunta que estou importando dados para um servidor remoto. (embora esteja descrito na postagem do blog a que me refiro). Operações como inserções na Internet estão sujeitas a uma latência de rede. Talvez não seja irrelevante mencionar que este servidor está no Amazon RDS , o que me impede de ssh na máquina e executar operações localmente.
Tendo isso em mente, refiz a engenharia da minha abordagem, usando a diretiva "\ copy" para promover um despejo de dados em uma nova tabela. Penso que esta estratégia é uma chave essencial, que também foi referida nos comentários / respostas a esta pergunta.
psql database -U user -h host.eu-west-1.rds.amazonaws.com -c "\copy newt_table from 'data.csv' with DELIMITER ','"
Esta operação foi incrivelmente rápida. Desde que importei um CSV, tive todo o trabalho de preencher a geometria, adicionar um índice espacial, etc. Ainda era notavelmente rápido, pois estava executando consultas no servidor .
Decidi comparar também as sugestões do usuário30184 , Paul Ramsey . Meu arquivo de dados era um shapefile de ponto com 3035369 registros e 82 MB.
A abordagem ogr2ogr (usando a diretiva PG_USE_COPY) terminou em 1:03:00 m, que ainda é * muito melhor do que antes.
A abordagem shp2pgsql (usando a diretiva -D) terminou em apenas 00:01:04 m.
Vale dizer que o ogr2ogr criou um índice espacial durante a operação, enquanto o shp2pgsql não. Descobri que é muito mais eficiente criar o índice após a importação, em vez de inchar a operação de importação com esse tipo de solicitação.
A conclusão é: o shp2pgsql, quando adequadamente parametrizado, é extremamente adequado para realizar grandes importações, principalmente aquelas a serem acomodadas no Amazon Web Services.
Você pode ler uma descrição mais detalhada dessas conclusões, na atualização deste post.