Em 12 de março de 2017 17:40, Pablo Sánchez <[email protected]> escreveu: > Estou quase pensando em processar o CSV e criar CSV's por separado para > fazer o copy mesmo. > > É um modelo de enderecos basicamente, com apenas umas 8 tabelas, onde um > endereco/locus pode ser pai de outro. Ex: Brasil é pai de DF que é pai de > Brasília, que é pai de asa sul, que é pai de SQS 116 que é pai de bloco G, > por exemplo. Entao a linha tem que ser decomposta, buscar o pai no banco se > já existe (mas eu cacheio pelo hash do objeto que foi gerado no PHP para não > ficar indo no banco o tempo todo), e aí tem tipos e etc que também são > cacheados. Ou seja, nada de outro planeta. > > Só que está degradando, e não é no PHP, pois é save que automaticamente o > arquivo todo é processado em questão de minutos, e o consumo de memória mal > chega a 500MB. > > Agora estou em 300.000 registros já, e a velocidade está em 20 linhas do CSV > por, mas no comeco, no primeiro minuto, ele processa facilmente 2000 linhas. > Enfim... Tá foda. :-D
Pablo, no início você escreveu sobre o problema: "que não tem relacão com o código, mas sim o Postgres". Ainda não ficou claro onde está o problema. Parece que você não está fazendo uma importação direto no banco de dados, haja vista que "o arquivo todo é processado em questão de minutos". Quais as suas evidências para ter certeza que o problema é no Postgres? Você chegou a configurar os logs do PostgreSQL para gravar todos os comandos SQL e o tempo de execução de cada um? Os comandos SQL são enviados para o banco de dados com que frequência? Você pouco detalhou o procedimento, mas pelo o que eu estou imaginando você importou o arquivo todo para uma tabela na sua forma original (um registro por linha) e depois passou a ler e processar todos os registros desta tabela (ou do cache do PHP) gravando em outras tabelas, é isso? Especifique exatamente o(s) ponto(s) em que o Postgres está demorando e detalhe melhor o seu processo para podermos ajudá-lo. Adami _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
