Adonias Malosso wrote: > Srs, > > Tenho tentado fazer um copy de um arquivo CSV com 4.902.209 KB e > 7.109.032 linhas para uma tabela com umas 100 colunas ( numero de > colunas é o mesmo do arqvuivo ) e recebo a segunite mensagem de erro: > > psql:/home/adonias/import/script_q2.sql:109: ERROR: invalid string > enlargement request size 65536 > O PostgreSQL *não* conseguiu alocar 65 Kb? Por curiosidade, podes mostrar os parâmetros de memória do PostgreSQL?
> O comando copy utilizado foi: > > COPY importacao.temp_q2 FROM :ARQUIVO DELIMITER ';' NULL '' CSV QUOTE '"'; > > O servidor tem 8Gb de RAM e o Postgres é o 8.2.4. > Um teste em uma máquina razoável (Pentium M, 1 GB de RAM, 8.2.4) e com 14 campos obtive os seguintes resultados: regression=# copy tst from '/tmp/y.csv' delimiter ','; COPY 924220 Tempo: 37794,338 ms regression=# select count(*) from tst; count -------- 924220 (1 registro) Tempo: 6850,461 ms > O comando funciona para menos linhas. No entanto, dependendo da memória > disponivel no servidor o numero de linhas que consigo importar sem erros > de memória varia. Tenho observado o postgres consumindo memória numa > quantidade proporcional ao arquivo. O copy de csv nao deveria ser > executado linha a linha? Sem necessidade de tanta memória? > O COPY *não* utiliza a mesma quantidade de memória do tamanho do arquivo. No meu teste acima com um arquivo de 101 MB, ele utilizou somente 29 MB de RAM. Mesmo com arquivos menores ele utilizou quase a mesma quantidade de memória. -- Euler Taveira de Oliveira http://www.timbira.com/ _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
