é 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

Responder a