ETL no Postgresq

26/01/2012

0

Boa tarde,
Estou utilizando a ferramenta ETL da Informática Services para carregar uma tabela do Oracle para o Postgresql.
Quando a tabela de destino (postgresql) está vazia, a carga executa em torno de 4 minutos.
Quando a tabela já contém dados (carga incremental), a carga demora em torno de 12 horas.
Quando verifico as sessões, o usuário ETL está fazendo update e é bastante demorado o processo.
Alguém tem alguma dica ?
Estou utilizando o postgresql 8.4 num servidor com 8Gb de RAM e com as configurações:
max_connections = 140 # (change requires restart)
shared_buffers = 2GB # min 128kB
temp_buffers = 8MB # min 800kB
work_mem = 32MB # min 64kB
maintenance_work_mem = 512MB # min 1MB

Agradeço desde já,
Sandra Guedelha

Sandra Guedelha

Responder

Posts

28/02/2012

Diego Lusa

Olá Sandra.

Normalmente as cargas incrementais são mais demoradas pois envolvem um número maior de testes
e de passos. O uso de índices na tabela de destino pode diminuir o tempo necessário para estes testes.
Outro fator que impacta no desempenho é onde são criadas as tabelas temporárias (não sei se a ferramenta
as usa, no caso). Se existir um comando NOT IN ou IN que opere sobre um conjunto muito grande de registros,
tente substituir pelas cláusulas EXISTS e NOT EXISTS
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar