Olá todos,
Preciso rodar uma função que contém cerca de uns 5 "TRUNCATE" e
seguidos de um respectivo "INSERT/SELECT".
O problema é que a "tabela" de onde eu executo o SELECT é uma view com
várias tabelas e retorna um volume de dados na ordem dos 400.000.000
registros.
Na última execução que fiz para teste eu observei que ela chega a
sugar cerca de 4GB de RAM (dos 8GB disponíveis), quando pára.
Esse é o final do meu LOG quando a função estoura:
ERRO: sem memoria
DETALHE: Falhou ao requisitar o tamanho 1536.
CONTEXTO: comando SQL "INSERT INTO publicacao.extracao_jabot
SELECT nextval('publicacao.extracao_jabot_codespecime_seq') as
codespecime, * FROM jabot.v_extracao_jabot;"
PL/pgSQL function "extracao" line 13 at execute statement
LOG: EOF inesperado durante conexao do cliente
Se eu separar esses vários conjuntos de de TRUNCATE + INSERT/SELECT em
funções separadas e depois criar uma função principal chamando todas
elas, resolveria o problema de falta de memória (estou apostando na
questão do Postgresql considerar toda uma função como uma transação
única - TALVEZ ESTEJA FALANDO BOBAGEM, confirmem se algum puder) ?
Caso a ideia sugerida acima não resolver qual solução vocês me recomendariam?
Grato.
--
Welington Rodrigues Braga
--------------
Web: http://gtk-br.welrbraga.t5.com.br
MSN: welrbraga[*]msn·com
Gtalk: welrbraga[*]gmail·com
Yahoo / Skype: welrbraga
ICQ: 52789331
"Em tudo somos atribulados, porém não angustiados; perplexos, porém
não desanimados; perseguidos, porém não desamparados; abatidos, porém
não destruídos;" - 2Co 4:8,9
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral