Gestire un datasource molto corposo
cristian0579 non è online. Ultima attività: 24/07/2008 15.00.31cristian0579
Inserito il: 22 luglio 2008 15.16
132 messaggi dal 13 feb 2004 Istalla Microsoft Silverlight!
salve a tutti

ho uno scenario un pò tosto da gestire.

in pratica effettuo delle statistiche di vendita di articoli, su un db SQL2000 con una SP che effettua un group da una prima select di oltre 1 milione di righe.

il primo problema è il TimeOut di SQL, infatti la SP ci impiega 36secondi a estrapolare le righe, di conseguenza ho dovuto aumentarlo.

secondo problema è che ho dovuto anche attivare il caching del SQLdataSource , altrimenti ad ogni postback di paginazione, ci volevano 40 e passa secondi.

Ho impostato comunque un tempo di circa 5 minuti.

Nella stessa paginew però ho due calendar che selezionano il periodo di analisi.

di conseguenza in questo caso il Datasouce dovrebbe cambiare.

Come faccio a far scadere la chache?

grazie a tutti

PS. ogni tanto comunque va ugualmente in timeout, ma la durata va impostata solo nella connection string giusto?



Modificato da cristian0579 il 22 luglio 2008 15.17 -
Microsoft Most Valuable Professional
RE: Gestire un datasource molto corposo
Ricciolo non è online. Ultima attività: 30/08/2008 11.51.48Ricciolo
Inserito il: 22 luglio 2008 17.01
contributi / Top Poster / Community manager / blogs.aspitalia.com / Blog / 4556 messaggi dal 26 feb 2001 Istalla Microsoft Silverlight!
Per il timeout, ovviamente la prima è cosa è ottimizzare la query ma su questo devi vedere te. Nella connecion string aumenti il timeout di connessione, non quello di esecuzione. Per questo devi agirare sulla proprietà CommandTimeout del SqlCommand.
Per la cache, il motore crea una chiave in funzione dei vari parametri di cache. La invalida se cambi uno di questi parametri. Quindi a questo punto è meglio se abbandoni il SqlDataSource e fai te la chiamata alla SP, così gestisci te la cache con una tua chiave, andandola eventualmente a rimuoverla quando non ti serve più.

Ciao

Il mio blog
Homepage
RE: Gestire un datasource molto corposo
cristian0579 non è online. Ultima attività: 24/07/2008 15.00.31cristian0579
Inserito il: 22 luglio 2008 17.06
132 messaggi dal 13 feb 2004 Istalla Microsoft Silverlight!
si pensavo anche io di abbandonare il datasource

non mi è operò chiaro il concetto della chiave della cache, come faccio ad invalidarla?
Microsoft Most Valuable Professional
RE: Gestire un datasource molto corposo
Ricciolo non è online. Ultima attività: 30/08/2008 11.51.48Ricciolo
Inserito il: 22 luglio 2008 17.11
contributi / Top Poster / Community manager / blogs.aspitalia.com / Blog / 4556 messaggi dal 26 feb 2001 Istalla Microsoft Silverlight!
L'oggetto HttpRuntine.Cache ha i metodi Add/Insert e Remove per aggiungere o rimuovere elementi in cache in base ad una chiave. Tu genera la chiave in funzione di certi parametri e poi usa quei metodi per togliere e mettere

Ciao

Il mio blog
Homepage
RE: Gestire un datasource molto corposo
fabrica non è online. Ultima attività: 30/08/2008 2.54.43fabrica
Inserito il: 22 luglio 2008 17.48
Top Poster / www.fabricasoft.net / Blog / 1281 messaggi dal 03 dic 2001 Istalla Microsoft Silverlight!
Ciao,

visto che i dati vengono "paginati" potresti risolvere tutto con un PagedDataSource. Dai un occhio qui: http://msdn.microsoft.com/it-it/library/system.web.ui.webcontrols.pageddatasource(VS.80).aspx

Fabrizio Canevali

Working on VS2008,LINQ & WPF ...
RE: Gestire un datasource molto corposo
Salvodif non è online. Ultima attività: 27/08/2008 17.47.00Salvodif
Inserito il: 24 luglio 2008 11.56
blogs.ugidotnet.org / 40 messaggi dal 07 gen 2008 Istalla Microsoft Silverlight!
Come dice Fabrizio Canevali,
visto che pagini, pagina :D

Cerca un pò su google, in pratica devi modificare la tua SP in modo tale da passargli la pagina attuale, la pagina dove stai andando (quando l'utente clicca sul numero pagina) e il numero di elementi da visualizzare nella pagina.

Così facendo farai delle select mirate, stresserai meno il db e viaggeranno meno dati.

Salvatore Di Fazio
http://blogs.ugidotnet.org/SalvoDiFazio
RE: Gestire un datasource molto corposo
cristian0579 non è online. Ultima attività: 24/07/2008 15.00.31cristian0579
Inserito il: 24 luglio 2008 12.03
132 messaggi dal 13 feb 2004 Istalla Microsoft Silverlight!
Salvodif ha scritto:
Come dice Fabrizio Canevali,
visto che pagini, pagina :D

Cerca un pò su google, in pratica devi modificare la tua SP in modo tale da passargli la pagina attuale, la pagina dove stai andando (quando l'utente clicca sul numero pagina) e il numero di elementi da visualizzare nella pagina.

Così facendo farai delle select mirate, stresserai meno il db e viaggeranno meno dati.



attualmente per questa griglia ho utilizzato un controllo di terze parti in particolare gli asp ajx controls della Teletik.

pensavo di usare la loro gaginazione.

PErò in effetti invece di usare la cache, visto che il db è SQL2000 e di conseguenza non se ne parla di inserirgli delle dipendenze in cache con i triger.

Forse spostare l'onere della paginazione al db è la soluzione migliore.

non mi sono mai trovato in questa situazione, se ho capito bene consigli alla quesry di utilizzare "TOP n righe" al binding della griglia e ai sucessivi eventi di paginazione

Ma come faccio?

grazie
RE: Gestire un datasource molto corposo
Salvodif non è online. Ultima attività: 27/08/2008 17.47.00Salvodif
Inserito il: 24 luglio 2008 12.06
blogs.ugidotnet.org / 40 messaggi dal 07 gen 2008 Istalla Microsoft Silverlight!
Come fai a far cosa?

Salvatore Di Fazio
http://blogs.ugidotnet.org/SalvoDiFazio


Pagine: [1] 2 Avanti >>
Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.


fabrica - 1782 pt
vladimiro - 1731 pt
PeppeDotNet - 731 pt

Ultimi vincitori: PeppeDotNet, fabrica, vladimiro

Iscriviti anche tu e raccogli punti. Questo mese in palio VS 2008 + Windows Server 2008, ReShaper e 1 ebook!



COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums