Newsgroup: it.comp.www.asp
Titolo: Ottimizzare la connessione al database.

Ho un sito con parecchie pagine ASP che interagiscono con tre database
access.
Il funzionamento del sito si basa pesantemente sull'utilizzo dei database,
al punto che questa funzione è assai prevalentesulle altre.
Cosa posso fare per ottimizzare le connessioni, risparmiando tempo e risorse
del server?
E' conveniente impostare le connessioni nel file global.asa nella Sub
Application_OnStart?
Grazie.

 Application_OnStart?
io penso proprio di no...
Ciao
--
Lino Mari
Intermedia srl
http://www.viadeimercanti.com
 - Il nuovo portale dell'e-business
http://www.imbnet.it
 - Intermedia Srl - Telematica e Multimedia

> Il funzionamento del sito si basa pesantemente sull'utilizzo dei database
Potresti crearti un activex in Visual basic che gestisce tutte le
connessioni e le varie query.
Cosě facendo hai un file compilato che č piů veloce di una pagina asp.

 Grazie.
Come migliorare le prestazioni di un db č un argomento lungo e sfaccettato,
che alcuni risolvono semplicemente con "passa a SQL server" (dato che di
solito i soldi non li tirano fuori di tasca propria).
Alla base c'č il fatto che negli script ASP le connessioni di database sono
"istantanee". Nei linguaggi tradizionali un programma che accede ad un db
stabilisce una connessione sia al db che alle tabelle necessarie e poi la
chiude al termine. Significa anche che i drivers di database sono
ottimizzati a questo scopo. In ASP invece tipamente una connessione si apre
all'inizio dello script e poi si chiude con esso. E certe volte, anche piů
volte per ogni esecuzione dello script.
Un notevole miglioramento delle prestazioni puň essere effettuato a tecniche
un po' differenti da quelle insegnate sui libri Interessante č quella di
effettuare il "caching" di liste ed elementi simili, in modo da velocizzare
l'esecuzione dello script e non necessitare di accedere al db per ogni
richiesta.
Altresě in molti casi si presta bene l'uso del metodo Recordset.GetRows che
carica un recordset in un array.
Una descrizione di questi approcci la puoi trovare su
http://www.learnasp.com/
 , tra cui una libreria, RsFast, che offre entrambe
le tecniche.
Bye!
HD


Grazie, in effetti ho ripassato l'argomento e mi sono reso conto che il pool
di connessioni permette di riutilizzarle ... se sono state già chiuse.
Purtroppo ho dovuto disturbarvi per questo dubbio.
Ti ringrazio moltissimo per il consiglio.
Ciao.

Personalmente trovo comodo aprire una connessione unica al database
all'inizio di ogni mia pagina asp che richiede il recupero di dati da
un database. Alla fine della pagina chiudo il database e libero la
variaibile.
Trovo ingiustificato aprire e chiudere in continuazione sessioni al
database per 2 ragioni:
la prima e' che con un gran numero di accessi alla pagina l'apertura
di migliaia di connessioni per quanto durino pochi secondi secondo me
congestano sia la rete sia la memoria e possono implicare problemi.
La seconda è che se si lavora con delle sniplet (file inclusi), per
ognuna di queste sniplet bisognerebbe fare un controllo se il database
e' aperto (chi mi dice che sia stato veramente chiuso nella parte
precedente???) e se non lo e' aprirlo ed eseguire il necessario.
Mettete su una pagina con una decina di queste sniplet vedrete che
sono una decina di connessioni al database + una decina di controlli
sulla connessione ... moltiplicate il tutto per gli utenti collegati
simultaneamente ...e spaventatevi!
Altro fatto: l'apertura all'inizio della pagina vi assicura che tutte
le altre sniplet e funzioni che richiedono la connessione avranno a
disponibilita' una connessione sicuramente aperta (mica da poco ...in
confronto alla decina di controlli ne faccio uno solo, e immaginatevi
la comodita')
Un piccolo trucco che in molti se ne dimenticano:
Se avete un portale che visualizza delle news (slottini che recuperano
dati come titolo, descrizione e magari un'immagine) anche settimanali
....che senso ha andare a recuperare per ogni utente i valori di quella
news ogni volta? 
Molto probabilmente (quasi di sicuro) queste news vengono aggiornate
attraverso una comoda form che eseguira' l'inserimento dati in un
database. 
Pensate a realizzare un template fatto unicamente di html in cui sono
presenti dei tag da voi decisi, a cui verranno sostituiti i valori
appena immessi nel database.
Una semplice funzione che vi potete scrivere leggera' il template,
cerchera' i tag predefiniti, sostituira' questi con i valori appena
inseriti nel database, e salvera' il tutto nella sniplet che
richiamerete ove occorre.
Cosa c'e' di + veloce di una semplice pagina html? nessuna connessione
....meglio di cosi'! :)