Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Caricare dati da una listoff o direttamente da db
venerdì 10 febbraio 2012 - 15.32
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
ven 10 feb 2012 - 15:32
Non so se questa domanda devo porla in questa sezione del forum o in quella della winform pertanto in anticipo chiedo scusa se ho sbagliato.
In pratica la mia domanda verte sulla prestazione ho una tabella contente dei dati che vengono caricati su delle textbox a seconda del valore che digita il cliente su un'altra textbox, mi faccio capire meglio:
textbox1 = il cliente digita la nazione
textbox2= appare in automatico il codice della nazione digitata.
Tenendo presente che eseguo un codice creato da me che mentre il cliente inizia a digitare le lettere della nazione il programma esegue immediatamente già un ricerca per dare il codice relativo, mi domando è meglio eseguire queste continue select direttamente sul db...(database locale) oppure all'avvio del programma carico come se fossero delle impostazioni tutti i record che mi interessano in una listoff e poi eseguo le ricerche sulla listoff direttamente....Quale dei 2 esempi è + performante e leggero?
Ciao e grazie
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 10 feb 2012 - 15:52
Ciao
>Tenendo presente che eseguo un codice creato da me che mentre
>il cliente inizia a digitare le lettere della nazione il programma
>esegue immediatamente già un ricerca per dare il codice relativo,
>mi domando è meglio eseguire queste continue select direttamente
>sul db...(database locale) oppure all'avvio del programma carico
>come se fossero delle impostazioni tutti i record che mi interessano
>in una listoff e poi eseguo le ricerche sulla listoff direttamente....Quale
>dei 2 esempi è + performante e leggero?
Si tratta di un'annosa questione. La risposta è secondo me: dipende. Mi spiego.
Fino a che hai pochi record, il problema non si pone in entrambi i casi.
Se fai la select sempre sei più sicuro di avere i dati aggiornati.
Se precarichi le informazioni in memoria la get e il download delle info è veloce, ma rischi di non avere i dati sempre aggiornati.
Però queste informazioni tipicamente crescono di numero e le performance degradano piano piano.
Per questo si cerca sempre una soluzione che scali.
Fare una cache potrebbe essere una buona soluzione.
In poche parole, ogni "tot" tempo aggiorni la cache, e quindi è la cache che va a richiedere al database tutto il pacco di dati.
Il client chiede solo alla cache, e in quel caso legge dalla memoria senza andare direttamente a db.
Chiaro è che se un altro processo ti modifica dati prima del periodo di refresh della cache dovrai (sempre da quel processo) invalidare la cache e ricaricarla, forzando il ricaricamento anche se non previsto dal tempo di polling.
Vi è anche da dire che se ti arrivano SEMPRE gli stessi codici, e se sono pochi, puoi caricare ad ogni avvio il pacco di dati e tenerli in una tua "sessione".
Dipende anche dalla situazione reale.
>Ciao e grazie
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
ven 10 feb 2012 - 15:57
Allora la tebella che contiene i record è sempre la stessa ed i recordo sono fissi al massimo possono essere aggiunti uno o 2 in casi particolari stiamo parlando di codici nazioni codificate dall'Istat in totale tra province e nazioni estere i recordi sono 342 record...Pertanto secondo te mi conviene fare all'avvio del programma un select classica che prende tutti i record e li butta nella listoff e poi dalla varie parti del programma la richiamo e lavoro su quella facendo le mie ricerche
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 10 feb 2012 - 16:18
>Allora la tebella che contiene i record è sempre la stessa ed
>i recordo sono fissi al massimo possono essere aggiunti uno o
>2 in casi particolari stiamo parlando di codici nazioni codificate
>dall'Istat in totale tra province e nazioni estere i recordi
>sono 342 record...Pertanto secondo te mi conviene fare all'avvio
>del programma un select classica che prende tutti i record e
>li butta nella listoff e poi dalla varie parti del programma
>la richiamo e lavoro su quella facendo le mie ricerche
Sicuramente, non necessiti nemmeno di cache in questo caso.
Il caching in generale costa in termini di implementazione.
se la risposta ti ha aiutato accettala per cortesia, così chiudiamo il thread.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
ven 10 feb 2012 - 17:23
Quindi carico tutto nella listoff :)
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 10 feb 2012 - 17:48
>Quindi carico tutto nella listoff :)
non so cosa sia listoff, intendi una List? La struttura la scegli tu in base alle tue esigenze..
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
ven 10 feb 2012 - 17:52
si una list scusa....quindi non eseguo ogni vola la query sul db ma all'avvio carico tutto su una list e da li eseguo ciò che mi serve.
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 10 feb 2012 - 18:15
>si una list scusa....quindi non eseguo ogni vola la query sul
>db ma all'avvio carico tutto su una list e da li eseguo ciò che
>mi serve.
direi di sì, anche io seguirei questa strada, ma se fosse per farlo "bene" preferirei perder tempo su una cache, anche per scalare in futuro.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
ven 10 feb 2012 - 18:43
ok grazie mille
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
Torna su
Stanze Forum
Elenco Threads
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 !