Em 10-06-2013 17:05, Rebert Tomaz Aquino escreveu:
Bom dia povo..
desculpe começar na lista postando uma dúvida.. mas acontece que vocês
aqui são tão cascas que fica dificil eu responder alguma coisa por aqui.
seguinte:
faço um select que me retorna milhões de registros, na verdade são:
2058585 registros.. só de alagoas rss em breve vou ter que fazer o
programa funcionar com o brasil todo.. aí to ferrado mesmo.
seguinte.. a lógica é a seguinte.. pego o select, e no looping dos
resultados gravando-os num arquivo local.
O problema é que se for um select que retorna poucos registros +- 100mil
o sistema funciona perfeitamente, mas nesse caso ( que não é dos maiores
) 2milhoes e pouco ele nem chega a iniciar o looping dos resgistros..
pelos terminais do linux o processo PHP ( mesmo chamando pelo emulador )
ou curl para depois de um determinado tempo, detalhe que o settimelimit
do php tá infinito e do curl também.
Então, como é que eu faço pro php esperar o banco terminar de executar o
select? ouu tem alguma forma de ir executando o select e ja ir gravando
as linhas no arquivo antes mesmo do banco terminar o select todo ?
um exemplo do select :
SELECT A.cd_ibge, B.cod_familiar_fam, A.cod_parentesco_rf_pessoa,
B.dat_atual_fam, B.dat_cadastramento_fam, B.des_complemento_adic_fam,
B.des_complemento_fam, A.dta_nasc_pessoa, A.fx_idade, A.marc_pbf,
B.nom_localidade_fam, B.nom_logradouro_fam, A.nom_pessoa,
B.nom_tip_logradouro_fam, B.nom_titulo_logradouro_fam,
B.num_cep_logradouro_fam, B.num_logradouro_fam FROM
tab_cad_15032013.tb_pessoa_uf_27 A, tab_cad_15032013.tb_domicilio_uf_27
B WHERE (B.cod_est_cadastral_fam = '3')
bem simples né.
Use LIMIT e OFFSET e repita a consulta diversas vezes com um número de
linhas que funcione pra você.
Provavelmente (e veja bem, *provavelmete*) você pode estar sofrendo
timeout de script ou limitação de memória no vetor que recebe os
resultados da consulta no PHP, afinal, são vários megabytes para essa
quantidade enorme de linhas.
[]s
__________________________________
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos & Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: [email protected]
______________________________
FREE SOFTWARE SOLUTIONS
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral