Re: R: Elaborare query con molti record

Davide Rossi <[email protected]>
Newsgroups gmane.comp.cms.cold-fusion.devel.italian
Message-ID <CAJj9EgtrowF_WyNos3A6WNmYekp4n33PMactNRph8ZsfnXLAaQ@mail.gmail.com>
qui:
<cfflush interval="10">

usa <cfflush>

Ciao
D

Il giorno 09 maggio 2012 12:56, Puglia Marco
<[email protected]>ha scritto:

> **
>
>
>  Niente da fare… ho provato a mettere dei puntini all’interno di un loop
> di 300.000 record con un <cfflush> impostato sui 10 byte e mi visualizza
> tutto solo ad elaborazione finita… non capisco… vi incollo il codice.****
>
> ** **
>
> <cfloop query="elenco">****
>
>                 <cfset midean13=elenco.codiceean>****
>
>                 <cfquery name="trova" datasource="liberamente">****
>
>                                select * from libridb where
> idean13='#midean13#'****
>
>                 </cfquery>****
>
>                 <cfif trova.recordcount eq 0>****
>
>                                <cfoutput>#midean13#</cfoutput> non
> trovato (da aggiungere)<br>****
>
>                 </cfif>****
>
>                 ...****
>
>                 <cfflush interval="10">****
>
> </cfloop>****
>
> ** **
>
> Dove sbaglio?****
>
> ** **
>
> ================================
> *Marco Puglia
> **Project Manager
> **Business-e S.r.l. <http://www.business-e.it/>* (an Itway Group Company)
>
> Via F.lli Lumière, 65 - 48010 Ravenna****
>
> Tel. +39 0544.460413 - Fax +39 0544.272297****
>
> Cell. 348 4759233****
>
>
> *Italy*, *France*, *Spain*, *Portugal, Greece, Turkey*
> Ravenna, Milano, Trento, Bari, Massa, Roma
> Paris, Barcelona, Madrid, Lisboa, Athina, Istanbul, Ankara
> ================================****
>
> ** **
>
> *Da:* [email protected] [mailto:[email protected]] *Per
> conto di *Ciro Bernini
> *Inviato:* lunedì 7 maggio 2012 08:33
> *A:* [email protected]
> *Oggetto:* Re: R: Elaborare query con molti record****
>
> ** **
>
>   ****
>
> Se usi cfflush senza altri parametri, cf invia al browser quello che ha
> elaborato fino ad incontrare il tag <cfflush>.
> Se metti l'opzione interval=k CF invia al browser i dati ogni qualvolta
> genera k bytes di output; se noon usi cfflush CF invia al browser tutto
> SOLO quando ha finito l'elaborazione, per cui se è una pagina da 100 k
> cfflush non serve a nulla, ma se ha migliaia di record da elaborare e vuoi
> avere lo stato di avanzamento a mano a mano che elabora la pagina metti il
> cfflush all'interno del loop.
> Se vuoi che mandi verso il browser dei dati "ogni tanto" a prescindere
> dall'elaborazione del singolo ciclo, allora aggiungi l'opzione interval=
> Ricorda anche che se la pagina impiega tanto ad elaborare di aggiungere il
> cfsetting settimeout ad un valore congruo.
> Tutto questo perchéproprio perchè CF invia di default il risultato alla
> fine dell'elaborazione, una pagina che impiegi un tempo di elaborazione
> maggiore del tempo di timeout del webserver ti porterebbe ad avere che sul
> browser ti arriva una pagina di timeout anziché la pagina elaborata.
> Per evitare ciò usi cfflush per far si che arrivi al webserver, e quindi
> al browser richiedente la pagina, una porzione di elaborazione che ha il
> duplice scopo di far notare un qualche avanzamento della pagina e di tenere
> attiva la connessione CF -> Webserver -> browser
> Quindi, per ridponderti, con cfflush senza parametri presenta l'utput
> generato fino a quel momento (non ogni tot seondi), se metti il parametro
> interval ti invia l'elaborato ogni tot byte, se non lo usi affatto l'invia
> alla fine dell'elaborazione dell'intera pagina.
> <CiBerFiduciaInCF>
>     Aggiungo che CF ha SEMPRE voglia di inviarti l'output, è una delle
> certezze....
> </CiBerFiduciaInCF>
> CiBer
>
>
> Il 04/05/2012 12.16, Puglia Marco ha scritto: ****
>
>   ****
>
> Quando dici “quello che ha pronto” cosa intendi? All’interno del loop
> scrivo delle cose sul browser, quando le visualizza? Ogni tot tempo? Ogni
> tot byte? Quando ne ha voglia, se ne ha voglia?****
>
>  ****
>
> Grazie J****
>
>  ****
>
> ================================
> *Marco Puglia
> **Project Manager
> **Business-e S.r.l. <http://www.business-e.it/>* (an Itway Group Company)
>
> Via F.lli Lumière, 65 - 48010 Ravenna****
>
> Tel. +39 0544.460413 - Fax +39 0544.272297****
>
> Cell. 348 4759233****
>
>
> *Italy*, *France*, *Spain*, *Portugal, Greece, Turkey*
> Ravenna, Milano, Trento, Bari, Massa, Roma
> Paris, Barcelona, Madrid, Lisboa, Athina, Istanbul, Ankara
> ================================****
>
>  ****
>
> *Da:* [email protected] [mailto:[email protected]<[email protected]>]
> *Per conto di *CiBer
> *Inviato:* giovedì 3 maggio 2012 19:49
> *A:* [email protected]
> *Oggetto:* Re: Elaborare query con molti record****
>
>  ****
>
>   ****
>
> cflush con l'opzione interval=n ti manda dati verso il webserver e quindi
> il browser ogni n bytes da presentare, per cui metterlo all'interno del
> loop non ha alcun senso.
> Se vuoi, invece, avere un output "a comando" devi mettere il solo tag
> cfflush SENZA parametri, ed allora ha senso metterlo all'interno del loop
> perché invia quello che ha pronto quando gli dici di inviare
> CiBer
>
> Il 03/05/2012 18:32, Fabio Serra ha scritto: ****
>
>   ****
>
> mettici qualcosa in output tipo dei puntini****
>
> ... <cfflush interval="10"> ****
>
> 2012/5/3 Puglia Marco <[email protected]>
>
>
> ****
>
>  ****
>
> In effetti così sembra funzionare, però non sono ancora riuscito a capire
> bene il funzionamento di <cfflush>, se lo metto dentro il loop della query
> in questo modo:****
>
> <cfloop query="elenco">****
>
>                 <cfset midean13=elenco.codiceean>****
>
>                 <cfquery name="trova" datasource="liberamente">****
>
>                                select * from libridb where
> idean13='#midean13#'****
>
>                 </cfquery>****
>
>                 <cfif trova.recordcount eq 1>****
>
>                                <cfoutput>#midean13#</cfoutput> non trovato
> (da aggiungere)<br>****
>
>                 </cfif>****
>
>                 <cfflush interval="10">****
>
> </cfloop>****
>
>  ****
>
> Non mi mostra niente durante l’elaborazione, rimane fermo per qualche
> secondo e poi visualizza la pagina a loop concluso.****
>
> Come mai?****
>
>  ****
>
> ================================
> *Marco Puglia
> **Project Manager
> **Business-e S.r.l. <http://www.business-e.it/>* (an Itway Group Company)
>
> Via F.lli Lumière, 65 - 48010 Ravenna****
>
> Tel. +39 0544.460413 - Fax +39 0544.272297****
>
> Cell. 348 4759233****
>
>
> *Italy*, *France*, *Spain*, *Portugal, Greece, Turkey*
> Ravenna, Milano, Trento, Bari, Massa, Roma
> Paris, Barcelona, Madrid, Lisboa, Athina, Istanbul, Ankara
> ================================****
>
>  ****
>
> *Da:* [email protected] [mailto:[email protected]] *Per
> conto di *Fabio Serra
> *Inviato:* mercoledì 25 aprile 2012 12:56
> *A:* [email protected]
> *Oggetto:* Re: Elaborare query con molti record****
>
>  ****
>
>   ****
>
> Ma dopo quanto tempo ti va in time-out? Senza impelagarti in altre cose
> hai aumentato il timeout di coldfusion ed usato cfflush per non far andare
> in tiimeout il browser?****
>
>  ****
>
> All'inizio della procedura metti un bel****
>
>  ****
>
> <cfsetting requestTimeOut = "1800">  numero di secondi****
>
>  ****
>
> poi dentro il loop della query metti un <cfflush>****
>
>  ****
>
> così manda sempre al browser qualcosa e non va in timeout. Guardati bene
> cfflush dove puoi specificarli ogni quanti byte mandare qualcosa al browser
> etc etc. ****
>
> Comunque in questo modo il browser non va mai in timeout e neanche
> coldfusion. Dovresti aver risolto.****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
> 2012/4/23 Puglia Marco <[email protected]>****
>
>  ****
>
> Vi pongo questo quesito che mi attanaglia ormai da diverso tempo.****
>
>  ****
>
> Situazione****
>
> Ho una query che estrare i dati da una tabella su Mysql (circa 800.000
> record).****
>
>  ****
>
> Necessità****
>
> Per ogni record estratto, devo controllare se esiste l’ID su un’altra
> tabella, in caso negativo vado ad aggiungere il record sulla seconda
> tabella.****
>
>  ****
>
> Problema****
>
> Se eseguo un loop sulla query per tutti gli 800.000 record il browser va
> in timeout.****
>
> Ho provato a spezzare la query e ricaricare lo script ogni 10000 record,
> ma quanto arrivo a 200.000 il browser mi dice che c’è un problema di loop.
> ****
>
> Come posso risolvere?****
>
>  ****
>
> Grazie a tutti in anticipo per la risposta.****
>
>  ****
>
>  ****
>
> ================================
> *Marco Puglia
> **Project Manager
> **Business-e S.r.l. <http://www.business-e.it/>* (an Itway Group Company)
>
> Via F.lli Lumière, 65 - 48010 Ravenna****
>
> Tel. +39 0544.460413 - Fax +39 0544.272297****
>
> Cell. 348 4759233****
>
>
> *Italy*, *France*, *Spain*, *Portugal, Greece, Turkey*
> Ravenna, Milano, Trento, Bari, Massa, Roma
> Paris, Barcelona, Madrid, Lisboa, Athina, Istanbul, Ankara
> ================================****
>
>  ****
>
>  ****
>
>
>
> ****
>
>  ****
>
> -- ****
>
> Fabio Serra
> [email protected]
> http://faser.net****
>
>  ****
>
>
>
> ****
>
>  ****
>
> --
> Fabio Serra
> [email protected]
> http://faser.net****
>
>     ****
>
>  
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.