é acabamos de resolver fazer isso mesmo. primeiro vou fazer um looping com os 2 limites em um php só, usando sleep, se mesmo assim o php parar vou fazer o looping com arquivos diferentes usando um range de limites em cada arquivo instanciando paralelamente sem deixar sobrecarregar o server..
detalhe, são 2 server dedicados.. um de aplicação e um de postgres Em 10 de junho de 2013 17:08, Flavio Henrique Araque Gurgel < [email protected]> escreveu: > > 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].**org.br<[email protected]> > https://listas.postgresql.org.**br/cgi-bin/mailman/listinfo/**pgbr-geral<https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral> > -- Rebert Tomaz
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
