Carga dos dados no banco - Uso do COPY FROM

Informática

28/04/2008

Quando for necessário inserir uma grande quantidade de dados em um banco, uma sugestão, para tornar este processo mais eficiente é usar o comando COPY para carregar todas as linhas em um comando, em vez de usar uma série de comandos INSERT. O comando COPY é otimizado para carregar uma grande quantidade de linhas; é menos flexível que o comando INSERT, mas ocasiona uma sobrecarga significativamente menor para cargas de dados volumosas. Uma vez que o comando COPY é um único comando, não é necessário desativar a auto-efetivação se for utilizado este método para carregar a tabela.

Se não for possível utilizar o comando COPY, pode ser útil utilizar o comando PREPARE para criar comandos INSERT preparados, e depois usar o comando EXECUTE tantas vezes quanto forem necessárias. Isto evita a sobrecarga de analisar e planejar o comando INSERT repetidas vezes.

Deve-se notar que carregar uma grande quantidade de linhas utilizando o comando COPY é quase sempre mais rápido que utilizando o comando INSERT, mesmo que o comando PREPARE seja utilizado e sejam feitas várias inserções em lote em uma única transação.

The PostgreSQL Global Development Group
Copyright°©°1996-2005 por The PostgreSQL Global Development Group

Esta apresentação reflete a opinião pessoal do autor sobre o tema, podendo não refletir a posição oficial do Portal Educação.


Colunista Portal - Educação

por Colunista Portal - Educação

O Portal Educação possui uma equipe focada no trabalho de curadoria de conteúdo. Artigos em diversas áreas do conhecimento são produzidos e disponibilizados para profissionais, acadêmicos e interessados em adquirir conhecimento qualificado. O departamento de Conteúdo e Comunicação leva ao leitor informações de alto nível, recebidas e publicadas de colunistas externos e internos.

Portal Educação

UOL CURSOS TECNOLOGIA EDUCACIONAL LTDA, com sede na cidade de São Paulo, SP, na Alameda Barão de Limeira, 425, 7º andar - Santa Cecília CEP 01202-001 CNPJ: 17.543.049/0001-93