Otimização de inserção de dados via INSERT INTO no PostgreSQL

image_pdfimage_print

Obviamente existem métodos de inserção muito mais rápidos e ágeis que o INSERT INTO no PostgreSQL, como o COPY. No entanto, por vezes, na hora de converter sistemas entre outras tarefas, não temos em mão o meio mais otimizado.

E em geral, iremos receber dados no bom e velho comando SQL INSERT.

Um boa estratégia para se adotar nestes casos com o objetivo de acelerar a importação de dados é evitar múltiplos comandos INSERT, em geral, um por registro ou linha de dados, e buscar gerar um grupo de dados por INSERT.

Em alguns casos, a diferença de performance é pequena. Em outros, a diferença é muito significativa. Se a necessidade de importação for de muitos registros, provavelmente valerá a pena utilizar da técnica que apresentamos nesta dica de otimização.

Com isto, a dica que fica é:
De

INSERT INTO tabela (campo1, campo2, ..., campoX) VALUES (valor1, valor2, ..., valorX);
INSERT INTO tabela (campo1, campo2, ..., campoX) VALUES (valor1, valor2, ..., valorX);
...
INSERT INTO tabela (campo1, campo2, ..., campoX) VALUES (valor1, valor2, ..., valorX);

Para algo como:

INSERT INTO tabela (campo1, campo2, ..., campoX) VALUES (valor1, valor2, ..., valorX),
(valor1, valor2, ..., valorX),(valor1, valor2, ..., valorX),(valor1, valor2, ..., valorX)
...
(valor1, valor2, ..., valorX);
Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!