• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

[PT]Devilishly

Descarregar 500 mil entradas na BD de uma vez

3 mensagens neste tópico

Boas!

Alguem me pode dizer qual é a maneira mais rápida de executar 500 mil inserts numa bd postgresql? Actualmente uso a API de java JDBC para fazer os inserts e uso um batch update(pq dizem que melhora a performance), mas ha alguma forma melhor e mais rápida?

Obrigado e fikem bem!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A melhor forma de efectuar um carregamento (loading na terminologia das BDs) desse tipo é através das ferramentas de Bulk Loading/Insert. Todas as BDs (dignas desse nome) costumam ter uma ferramenta que usa as APIs do SGBD para extrair e carregar em "bulk".

Por exemplo, no Oracle tens o SQL*Loader, no SQL Server tens o bcp (se bem que esta cena da MS tem bugs e é necessário algum "cuidado") e por ai adiante.

Usar JDBC ou qualquer outro tipo de estratégia idêntico não conseguem ser tão rápida quanto estas ferramentas, no entanto há outras técnicas, intrinsecas a cada SGBD, que permite boas performances.

No caso do postgresql em particular não me posso pronunciar, pois não conheço, mas aposto que também deve ter uma ferramenta deste tipo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens os dados em ficheiro CSV?  Ou mesmo noutro formato parecido, desde que em texto?

Eu já inseri cerca de 630.000 linhas com 8 colunas via o comando COPY e não tive problema nenhum, correu tudo muito rápido.

Para quê usares o java JDBC?

Já leste o manual em:

http://www.postgresql.org/docs/8.1/interactive/dml.html

que no fim aponta para:

http://www.postgresql.org/docs/8.1/interactive/sql-copy.html

?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora