Ciclo query che si bloccano con un request time out

lunedì 02 luglio 2012 - 22.57
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows Server 2008  |  Visual Studio 2008  |  SQL Server 2008  |  Internet explorer 8.0  |  Chrome  |  Firefox

trinity Profilo | Guru

ragazzi vi posto il codice che eseguo in una pagina aspx...certo è un codice personalizzato ma a funzionare funziona solo che ad una certa mi viene generato l'errore del time out..il file che carico è un file txt con 1350 record in media...
Vi chiedo solo cortesemente di dirmi se si può snellire i cicli e se sopratutto l'uso delle using dopo la connessione al db sono corrette.

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

invece ecco la stored principale che il ciclo esegue:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

alx_81 Profilo | Guru

Ciao
>Vi chiedo solo cortesemente di dirmi se si può snellire i cicli
>e se sopratutto l'uso delle using dopo la connessione al db sono corrette.
Non è tanto questione di qualità del codice ma di dove lo stai scrivendo. Un'applicazione aspx, che con una pagina in sincrono carica un file che può anche crescere nel tempo e non di poco, non mi sembra una buona pratica da seguire. Piuttosto cercherei di spostarmi su ajax per chiamare il caricamento in asincrono e lasciar lavorare il server senza che la pagina stia in load.

Per quanto riguarda SQL Server, dal 2008 puoi anche passare tabelle come parametro, quindi magari puoi pensare di fare le insert a blocchi e non riga per riga.
Si tratta dei table valued parameters: http://msdn.microsoft.com/en-us/library/bb510489.aspx

Altro metodo, se te lo puoi permettere, è di utilizzare un processo su server che controlli se un file esiste e poi lo carichi quando serve, in modo da demandare all'applicazione web solo l'upload.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi

trinity Profilo | Guru

Ciao senti prima di tutto per il discorso delle insert a blocchi posso fare lo stesso discorso anche in windows application? Secondo il server é il mio quindi dovrei fare un upload del file e poi far girare un programma che carichi i record del file e poi come farei a far visualizzare i record caricati sulla pagina aspx? Mi intriga anche usare ajax in asincrono per far lavorare il server x evitare che la pagina sia in load e poi al termine del processo far vedere sulla stessa pagina i dati salvati nel db ma tutto questo non so farlo dove posso trovare esempi ed imparare semmai proprio un mio caso. ;-)
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

alx_81 Profilo | Guru

>Ciao senti prima di tutto per il discorso delle insert a blocchi
>posso fare lo stesso discorso anche in windows application?
Non conta come fai il client, decidi tu come fare il caricamento. Lo fai indipendentemente dal client che impieghi, non è mai "dietro ad una form", o almeno dovrebbe essere un processo a parte, meglio a server.

>Secondo il server é il mio quindi dovrei fare un upload del file e poi
>far girare un programma che carichi i record del file e poi come
>farei a far visualizzare i record caricati sulla pagina aspx?
la pagina aspx, non farebbe altro che caricare in asincrono uno status. Quando il caricamento è finito, il server dà una callback al client e il client fa la lettura dei dati. Devi divertirti con dell'ajax..

>ma tutto questo non so farlo dove posso trovare esempi ed imparare semmai proprio un mio caso. ;-)
Guarda, per fare delle progress bar con upload troverai un sacco di esempi:
http://blueimp.github.com/jQuery-File-Upload/

per capire quando il file è elaborato, dovrai segnare da qualche parte che il processo è finito, oppure un servizio dovrà dare una risposta ad un metodo lato server e poi via ajax interroghi questo "semaforo".
Cerca un po' per internet, vedrai che trovi una marea di esempi.

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5