Newsgroup: it.comp.appl.access
Titolo: Applicativo in rete - abbreviare i tempi di caricamento

Ho un applicativo che deve girare in rete:
ho diviso il tutto nel FE e BE.
Ora il BE è di circa 8 mega e, tra le varie tabelle, ce n'è una di
14000 record formati da 50 campi ... praticamente quasi tutto il peso
del FE è costituito da questa tabella.
Ogni volta che, da un PC che non contiene il BE, apro le maschere che
hanno come OrigineRecord questa tabella ci vogliono circa 40 secondi
prima che i record siano disponibili.
Ok, Access lavora così, per cui so che ci vuole il tempo che ci vuole
(come italiano fa schifo, ma rende l'idea) perchè i dati vengano
trasferiti sul BE x o Y, però chiedo ingenuamente:
"C'è qualche sistema, di cache o altro artifizio, per ridurre tali
tempi?"
La cosa ovviamente è da paranoia quando si passa da una mschera ad
un'altra, etc, etc.
Adriano
e-mail galad***NOSPAM***@
alma.it

 Ok, Access lavora cosě, per cui so che ci vuole il tempo che ci vuole
Non c'entra il motore JET, se apri una form che richieda 14.000 records a un
server SQL, questi si comporta nello stesso modo (che altro potrebbe fare?):
li spedisce tutti al Client aumentando il carico della rete.
Il vantaggio del Server rispetto a JET č che puň eseguire il codice SQL
localmente e non sempre a livello di Client .... ma non mi sembra questo il
caso tuo.
A mio parere stai testando la faccenda su una rete schifosa: normalmente
14.000 records vengono passati al client in pochi secondi.
Ciao.

 tempi?"
L'unico artificio è quello di evitare di avere maschere con tabelle
associate pesanti
diventa un vero suicidio,  idem con patate riguardo le combo
perchè non lavori con maschere controlli non associati e magari inserisci
i dati via recordset ?
by
Carlo Ve

 Adriano
Ciao
se non hai dei campi contatore utilizzati come indice nelle varie tabelle
potresti utilizzare le repliche:
sul server c'č la replica principale e sui i client le replice secondarie
il traffico generato dal sincronismo delle repliche e pari al n di record
che sono effettivamente cambiati ..
Ciao
Hp

 i dati via recordset ?
In questo caso non gli serve ... e poi (parere mio) se rinunci alla comodità
dei controlli legati tanto vale non usare Access :-)
Ciao, Giorgio

14.000 records vengono passati al client in pochi secondi.
Ok sono solo 14000 record ma che pesano 8 MEGA.
Farò delle prove copiando dei file lunghi e cronometrare il tempo,
però se facciamo 4 conti della serva, a 10Mbit il tutto viene
trasferito in 8 secondi ... stiamo parlando solo di trasferimento
teorico senza contare quello che deve fare Access.
Adriano
e-mail galad***NOSPAM***@
alma.it

 ha scritto nel messaggio
news:oie4nuk4bg0glhp03...@4ax.com...

Ti rispondo con la stessa risposta data ad un tread del mese di luglio:
credo che il problema è da risolvere a livello di registro di sistema.
Nella seguente chiave:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Jet 3.5
trovi una lista di valori che se opportunamente impostati faranno schizzare
il db.
Le impostazioni di default sono restrittive e non prevedono l'ottimizzazione
per un uso in rete.
Se per esempio la voce MaxBufferSize è impostata a zero (decimale). Una
impostazione di 512 o più alta migliora di molto le prestazioni.
Per sapere quanta ram assegnare a MaxBufferSize applicare la formula che
puoi trovare nella guida alla voce:
Inizializzazione del driver e poi scegliere Inizializzazione del driver del
modulo di gestione di database Microsoft Jet 3.5
((TotalRAM in MB - 12 MB) / 4) + 512 KB.
Tale formula credo contenga un errore perchè il dato va impostato in Kb e
non in Mb
Per esempio su una macchina con 256 Mb di memoria: 256 * 1024 = 262144  -
12288 (12 * 1024) = 249856 / 4 =  62464 + 512 = 62976
62976 è il valore da inserire cioè  61,5 Mb.
Se invece faccio il calcolo in Mb ottengo: (256 - 12) / 4 =  61 +  512 = 573
Credo che il primo valore sia quello corretto. Comunque puoi iniziare con
1024 e aumentare di 1024 alla volta.
Ancora RecycleLVs va impostato a zero.
Il tutto se usi Access 97 con jet 3.5 e sulla macchina client oltre che sul
server.
Prova a dare un'occhiata al registro anche se usi A2000 o AXp
Ciao, Carlo

 Adriano
E infatti questi sono i tempi che io riscontro sulle nostre applicazioni
(non lavoro solo) su reti a 10 mb/s.
Resta il fatto che hai detto poco delle caratteristiche della Form ... ci
sono molte combo, ci sono Ole?

prima che i record siano disponibili.
La situazione è interessante per cui ho voluto fare una verifica al volo:
"Server" ---- Pentium II Celeron 350 Mhz
Client    ---- Pentium II 700 Mhz
Rete 10 mb/s  (teorici dato la robaccia che uso al posto di cavi schermati) con Realtek 8029.
Anagrafica Articoli: 17.488 records, 47 campi (2 memo), dimensioni stimate: 6/7 MB
Form Articoli in configurazione  maschera singola
Tempo apertura Form su  BE JET 3.5  ---   7 secondi
"      "        "        "           BE  JET 4.0 ---   8 secondi (al primo avvio, poi è quasi
immediato)
Configurazione DataSheet  (dieci le caselle combinate)
Tempo apertura Form su  BE JET 3.5  ---   12 secondi
"      "        "        "           BE  JET 4.0 ---   13 secondi (al primo avvio, poi è quasi
immediato)
Ciao: warp

immediato)
Anch'io apro una form con i 50 controlli con origine o 50 campi,alcuni
controlli sono delle combo con tabelle (roba da poche decine di
record).
Tu hai fatto qualcosa di particolare o sono io che sono sfigato (non
credo di aver fatto qualche puttanata nel costruirmi la maschera ...
l'origine record è la tabella, l'origine dei controlli sono i campi
della tabella ... che dovevo fare di diverso? 
Provo con calma a mettere in atto il consiglio di Carlo Costarella ...
anche l'idea delle repliche di Hp mi pare buona ... anche se non
volevo utilizzare le repliche (tra l'altro sarebbe la prima volta che
le uso)
Adriano
e-mail galad***NOSPAM***@
alma.it

della tabella ... che dovevo fare di diverso?
Leggiti bene dall'help "come ottimizzare le prestazioni di tabelle collegate".
Se usi JET 4.0 controlla che la proprietà "Subdatsheet ...." nella struttura tabella sia impostata a
"nessuno" (mi pare).
Comunque non sei sfigato, i tuoi problemi sono a un livello più basso della Jet engine.
Ti saluto.

 Comunque non sei sfigato, i tuoi problemi sono a un livello più basso
della Jet engine.
Vuoi dire che sbaffo qualcosa e che Access che, col suo Jet,  sta a monte,
non centra nulla?
Ciao
Adriano

non centra nulla?
Le performances che dichiari non sono normali, sarebbe necessario toccare con mano per capire dove
sia il problema, così a distanza è difficile aiutarti.
Alcune indicazioni di massima:
- Lavora per sottrazione sulla Form (togli le combo, riduci i controlli, etc.) finchè scoprirai cosa
rallenta mostruosamente il reperimento dati.
- Se hai la brutta abitudine di pasticciare la copia master e non utilizzi prodotti tipo SourceSafe,
reimporata tutto in un .mdb vuoto e crea il relativo .mde
Ciao, warp
p.s: se non risolvi e le copie zippate del tuo lavoro non superano 2.5 MB, non ritieni i dati
sensibili e l'applicazione mission critical  puoi spedirmela in mail _previa avviso_

 dei controlli legati tanto vale non usare Access :-)
non credo sia l'unica comodità che offer access
by Carlo Ve

 paritetiche
Ciao, Giorgio