Newsgroup: it.comp.appl.access
Titolo: Access lento con db su server

Ciao a tutti,
ho sviluppato un programma in Access2007 utilizzato da pi� utenti. Ho 
diviso il db in due, uno con le tabelle e l'altro con il front-end.
Ogni utente ha il front-end installato sul proprio PC, mentre il db con 
i dati risiede in una cartella condivisa sul server aziendale.
Al momento il programma � utilizzato da 4 utenti.
Il problema � che se almeno 3 utenti accedono contemporaneamente al db 
dati, tutto diventa lentissimo: ogni utente ha un ritardo di 3/4 secondi 
tra il click su un pulsante e l'apertura della form associata. La form 
principale ha un evento impostato su onTimer che interroga il db, quindi 
basta tenere aperto il front-end per "occupare" il db condiviso.
Nel prossimo futuro il numero di utenti che utilizzeranno il programma � 
destinato ad aumentare a 7/8, e prevedo che la situazione diventer� 
insostenibile.
Esiste un metodo per risolvere il problema, oltre a raccomandare agli 
utenti di chiudere il programma quando inutilizzato? Altri consigli?
Grazie.

 ha scritto nel messaggio 
news:hm3b5k$t92$1...@news.eternal-september.org...

Ciao
hai tolto la correzione automatica del nome?
E' un'opzione che trovi nel pulsante "Office" scheda "database corrente" 

 Grazie.
Ciao,
mi giunge nuova la tecnica dell' onTimer.
Ho fatto un'applicazione per uno studio legale con un trentina di PC
collegati in rete locale,
di cui, sistematicamente, almeno un decina attivi contemporaneamente e
non ho i problemi che tu manifesti.
il DB di cui parlo, tra le varie tabelle, avrà non meno di 100.000
record.
Ha posto la debita attenzione all'indicizzazione delle tabelle ? (non
ti offendere ....)
Ciao
Alberto

 basta tenere aperto il front-end per "occupare" il db condiviso.
Qual'e' la finalita' di cio'?
Interrogare significa che fai una select?
--
ac


Uso dCount() per verificare se sono stati aggiunti nuovi record e 
segnalarlo in "tempo reale" agli utenti.
Googlando ho scoperto che le funzioni di aggregazione rallentano 
notevolmente il db, specie se su server. Potrebbe essere quello il 
problema...

 ti offendere ....)
Non mi offendo, sono qui per imparare! :)
S�, tutti i campi sui quali le query effettuano le ricerche sono 
indicizzati.
La cosa sembra anomala anche a me, prover� a eliminare l'onTimer e 
vedere se la situazione migliora.
Grazie.

nuts ha scritto:

Bene certo non gli fa.
Ovviamente dipende anche dal tempo di "timing" e dallo stato del db 
collegato (aperto/chiuso) al verificarsi delle dcount.
Prova a pensare se e' proprio necessario legare la notifica al timer o 
invece, ad esempio, non sia possibile legarla ad altri eventi (tipo "on 
current")
--
ac


Ma ogni quanto fai il dcount() ?
Ogni minuto, ogni secondo ?
E quanto grande e' la tabella sul db (in Mbyte circa)?
Chiedo questo perche' se la tabella e' grande, deve passare tutta attraverso 
la rete prima che la postazione operatore (che dovra' dcontare() le righe) 
abbia la risposta, messa cosi' non e' granche' efficiente l'operazione
E quando l'utente sa che c'e' una nuova riga da qualche parte cosa fa ?
Ciao e grazie
RobertoA

"nuts"

Conosci questo link?
http://www.granite.ab.ca/access/performancefaq.htm
E in particolare:
http://www.granite.ab.ca/access/performanceldblocking.htm

 
http://www.granite.ab.ca/access/performanceldblocking.htm
Avevo gi� trovato in rete il suggerimento di creare una form dummy, ma 
non era spiegata l'utilit� della cosa. Questa pagina � molto pi� 
esauriente.
Grazie mille.