Newsgroup: it.lavoro.professioni.webmaster
Titolo: ASP e connessione a DB Access

Ho alcune pagine di un sito il cui contenuto e' foramto da record di un
database Access e mi interfaccio tramite ASP. Volevo sapere se è più
conveniente aprire e chiudere una connessione ogni volta che eseguo una
query, o aprire una sola volta quando inizio ad elaborare la pagina e
chiudere alla fine dell'elaborazione? Per ogni pagina eseguo 3 o 4 query.
Grazie, Luca

 ha scritto nel messaggio
news:ad1rt6$t4ij9$1...@ID-125318.news.dfncis.de...

Dipende, se pensi che mentre elabori la pagina qualcuno ti può modificare
alcuni dati nella
ricerca che hai fatto allora forse ti convine aprire o chiudera la query
ogni volta, da considerare però anche il tempo che impieghi ad aprire e
chiudere magari poi riaprire e chiudere 3/4 query diventa pesante ..
ciao
MG

 chiudere magari poi riaprire e chiudere 3/4 query diventa pesante ..
E se io creo l'oggetto "connection" a livello di applicazione, nel file
global.asa, e poi apro e chiudo ogni volta che eseguo una query, credi sia
possibile e in prestazioni migliora qualcosa?
Grazie
Ciao, Luca

scusa a questa domanda non so rispondere ho solo un infarinatura di asp
(che tra l'altro non mi piace) e sto studiando php ho fatto solo delle
considerazioni di ordine generale.
ciao


la questione è controversa e comunque ti conviene chiedere su
it.comp.www.asp.
autorevoli autori (Bochicchio et al.) affermano che una connessione
meno sta aperta e meglio è.
altri ancora (Luciano.DOC) raccomandano l'immediato riversamento di un
recordset in un array tramite l'istruzione getrows, in modo da
smanettare l'array senza tenere aperta necessariamente la connessione.
questo è conveniente se si deve scorrere più volte il recordset-array
e comunque richiede una certa abilità nel trattare gli array.
d'altro canto, personalmente mi trovo spesso a fare una serie di
rapide operazioni una appresso all'altra e allora aprire e chiudere
connessioni mi sembra una lagna...
una buona soluzione sempre suggerita dal Bochicchio (se ho capito
bene, almeno, io l'ho messa in pratica così...) è quella di
raggruppare tutte le query sql da eseguire in un bell'array nel corso
dello script, alla fine dello script aprire la connessione, sparare
tutte le query in una volta scorrendo l'array e chiudere la
connessione stessa.
non sempre comunque questo si può fare.
la mia esperienza personale è che se lasci aperta la connessione e la
chiudi alla fine non cade il mondo.

 possibile e in prestazioni migliora qualcosa?
mi sa di no. Pero' puoi aprirla e lasciarla
aperta ma non farlo sapere all'amministratore :-)
Comunque tieni presente che normalmente
il server dopo che apri e chiudi la connessione in
maniera tradizionale la mantiene attiva per
mi sa 60 sec. per eventuali riconnessioni ravvicinate.
Se vuoi approfondire cerca da MSDN 'connection pooling'
M.

 credi sia possibile e in prestazioni migliora qualcosa?
e a cosa serve avere un oggetto istanziato quando non ti serve? la prima
regola in applicazioni web e': aprire gli oggetti e le connessioni il piu'
tardi possibile e chiuderli il prima possibile... sul web non sai quante
persone e quante richieste avrai... per questo devi ottimizzare il codice
anche in termini di spreco di risorse...
p.e. se nell'oggetto aperto per ogni sessione ci sono 10 KB di dati sappi
che ogni mille accessi avrai 10 MB di memoria del server utilizzata solo per
te... e solo un oggetto connection...
quindi valuta tu come e quando ti conviene aprire la connessione...
p.s. in ogni caso c'e' un NG apposito per queste richieste...
it.www.comp.asp
ciao
--
Lino Mari [MOD it.economia.e-commerce]
http://www.viadeimercanti.com
 -  Servizi e Software per l'E-Commerce
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D004
http://corsi.aspitalia.com
 - ASP - 
ASP.NET
, riconosciuti IWA

 non sempre comunque questo si può fare.
appunto ;)
ciao
-- 
Kappa [co-mod ICWA]
ka...@webngo.net
www.webngo.net
www.filmscoop.it


Moderatore di it.comp.www.asp
http://www.aspitalia.com/
 Enjoy the .NET community!
http://www.dev2dev.it/
 La rete ha connesso nuove particelle!

 it.www.comp.asp
it.comp.www.asp