Sbaglio, o crei per ogni utente una connessione separata al database? Se questo fosse il caso potresti spostare il codice dell'apertura al file global.asa, ci sono poi delle procedure che riguardano la sessione in genere (non ricordo bene come si chiamano). Lì controlli se il database è già aperto, e se è vero, riutilizzi la connessione e incrementi un contatore globale. In questo modo puoi gestire anche migliaia di utenti con una sola connessione al database. Alla chiusura dell'ultima sessione (decrementi il contatore), chiudi anche il database.
Ciò non toglie il fatto che un database con milioni di record ha comunque un bel peso ed è lento. Con variabili globali, puoi comunque aiutare il sistema, bloccando certe operazioni, oppure eseguirle in un secondo momento, tramite cosiddetti semafori.
Comunque sia, la soluzione migliore al problema è scrivere un ActiveX che fa le operazioni al posto dello script, in quanto è molto più veloce, e la condivisione delle risorse funziona a meraviglia ..., oltre a dare anche un ulteriore livello di sicurezza e più flessibilità nella scelta delle risorse.
E' un problema complesso ma non irrisolvibile, e la soluzione sta nel tenere basso le connessioni individuali al database, soprattutto con Access.
Giovanni
---
http://www.y2ksw.com/vbulletin