Newsgroup: it.comp.appl.access
Titolo: MSAccess in IDLE??? (Difficile...)

Ciao a tutti e grazie per aver aperto questo messaggio.
Ormai questo problema mi sta assillando
Premetto che uso Access 2000
Ho un DB front end che si connette a 50 db back end. Ognuno dei back end
contiene
una sola tabella e nient'altro. Tutte le tabelle hanno chiavi primarie e
nessun ordinamento,
le tabelle sul back end sono molto molto grandi (milioni di record a volte).
Lancio una query dal front end che effettua un banale JOIN tra una tabella
locale di circa
100 record (ogni record è una stringa di 8 char) e una tabella remota
(linkata), dove è presente
la stessa stringa come chiave primaria.
La query è di select.
Io mi chiedo perché ci mette un casino di tempo a essere eseguita?
Mi spiego. Con un analizzatore di processi ho esaminato il sistema dove
risiede il front end (cioè il mio PC) scoprendo che la CPU sta in IDLE
e il processo MSACCESS occupa ogni tanto il 10% delle risorse (per un
attimo)
e poi sta lì senza far niente.
A questo punto per esclusione ho pensato che fosse in corso il trasferimento
dei dati
tra FE e BE, e che la rete LAN fosse subissata dai miei dati, mentre
processo MSACCESS
stava aspettando di riceverli...
Non è così. Con un analizzatore di protocollo IP si vede che sulla rete
passano
OGNI TANTO (tipo ogni 5 secondi) alcuni datagram NETBIOS (penso siano
quelli).
E per di più se copio un file da un PC all'altro mentre è in corso la query
la copia avviene
all'istante.
Qualcuno sa cosa sta facendo ACCESS???? O cosa sbaglio io?
Se volete maggiori dettagli vi posto tutto quello che serve.
Ciao e mille grazie
ByZ-2K

 Qualcuno sa cosa sta facendo ACCESS???? O cosa sbaglio io?
Può darsi che si stia spingendo il motore di Access oltre i propri limiti
:-)
Per esempio può essere che la somma complessiva delle tabelle collegate
superi i 2 GB di spazio indirizzabile da un solo .mdb e che la cosa _anche
se non documentata_ disturbi il FE.
Comunque, utilizzi A '2000 sul Client ... anche sul Server i database sono
in formato Jet 4.0?
Hai provato a scaricare il service pack più recente di Jet?
http://support.microsoft.com/default.aspx?scid=kb;IT;q282010
Altra cosa: cambia qualcosa se la tabella invece che essere locale venisse
collegata sul Server?
Ciao, warp

 collegata sul Server?
Ecco qui dai spazio ad un altro mio dubbio. In effetti quella tabella ha
senso
che stia sul front end, in quanto raccoglie un elenco di dati che vengono
selezionati
dallo specifico utente.
Devo però ammettere che per un errore di programmazione è capitato che si
trovasse
su un DB remoto e che fosse linkata. Incredibilmente (e non ho capito
perchè) le query
erano più veloci.
Mi resta il dubbio comunque relativo all'apertura di una singola tabella,
senza queries.... è
lento da far paura sia che sia locale sia che sia remota...
Grazie per gli aiuti
ByZ-2K

 lento da far paura sia che sia locale sia che sia remota...
Immagino che avrai provato a trasferire il FE direttamente sul Server e fare
qualche tentativo: le prestazioni restano infami anche in monoutenza?
Se non ne esci ti consiglio di preparare un prototipo agganciato via ODBC
con MSDE (che dovresti già avere nella confezione di Office Professional),
prestazionalmente non sarà gran che ma ti permette di familiarizzare col
Server di database, con poco lavoro.
Anzi, magari ritoccando un 30% del codice SQL dove serve, riesci già ad
ottenere qualcosa di decente con uno sforzo, tutto sommato, non eccessivo.
Ciao, warp


CUT
Hai letto la mia risposta al tuo precedente messaggio con lo stesso subj?
Sib

 Hai letto la mia risposta al tuo precedente messaggio con lo stesso subj?
Probabilmente l'ha letta: però mi sembra giusto tentare il tutto per tutto
;-))
Ciao.

 ha scritto nel messaggio

E' che siamo incontentabili noi accessisti, vorremo fare anche il caffe' con
gli mdb ;-)
Ciao

 ottenere qualcosa di decente con uno sforzo, tutto sommato, non eccessivo.
A questa ho risposto qui sotto :))))
Grazie di tutto, ti terrò informato
ByZ-2K

 Hai letto la mia risposta al tuo precedente messaggio con lo stesso subj?
Ciao Sib, ti chiedo scusa.
Avevo la data settata male sul mio PC e pensavo di non aver inviato il primo
messaggio, mentre invece era finito tra quelli del 27/2. Così l'ho reinviato
e poi
non ho fatto caso alla tua risposta, che ora ho letto.
Effettivamente avevo già proposto ai miei capi di passare a SQL.
Ma a parte il fatto che in azienda disponiamo solo della licenza per la
versione
7, il problema è che è necessario comprare un bel server e metterci sopra
WIN NT Server (o 2000, XP non lo so...) il che comporta dei costi e quindi
tempi lunghi...
Questo è anche il motivo per cui non mi smazzo più di tanto per rifare tutto
in Access.
Ad esempio tra le tante soluzioni mi era venuta in mente quelle di fare un
Progetto (ADP)
anzichè un database (MDB) con interfaccia WEB.
In tal modo avrei avuto client molto piccoli e soprattutto il server avrebbe
dovuto elaborare
tutto, permettendomi di rivedere la struttura del Database per ottimizzarlo
come applicazione
standalone.
Questo però ha dei tempi molto lunghi di realizzazione e poiché il mio
lavoro non è
(putroppo) di programmatore... e quindi lavorerei la sera a casa.... o nei
tempi buchi...
ho lasciato stare
Altra idea che forse realizzerò tanto per provare è quella di linkare solo
le tabelle che servono
nel momento di una query.
In pratica ho notato che se le tabelle linkate sono poche il client è più
veloce.. cosicché vorrei vedere
cosa succede se sconnetto quelle inutili e le riconnetto dinamicamente
(tramite VBA) se se ne richede l'uso.
Volevo però porvi due domande:
1) ma l'ODBC è meglio o peggio dell'OLE? E soprattutto, SQL Server usa solo
ODBC?
2) All'apertura del mio DB la macro di Autoexec apre un Form, sul quale
all'evento On Timer
parte una procedura in VBA.
A volte ho notato che (senza alcun motivo!!!) la procedura parte dopo 30
secondi, anzichè dopo pochissimo...
Sapete quale può essere il motivo di questo?
Vi ringrazio e scusate per la lunghezza.
Ciao
ByZ-2K

 Effettivamente avevo già proposto ai miei capi di passare a SQL.
Dimenticavo... ovviamente lascerò il FE in Access... gestendolo come ADP.
Riciao
ByZ-2K

 Grazie di tutto, ti terrò informato
Ci conto: la cosa m'interessa  ;-)
Ciao: warp

 Sapete quale può essere il motivo di questo?
Francamente no: pare che tutto vada al rallentatore sul maledetto .mdb ;-))
Una domanda: hai mai pulito il FE in questione (/Demcompile, reimportazione
di tutti gli oggetti in un nuovo .mdb)?
Soprattutto con A '2000, serve ... anzi Server!  (scusa: sono gli effetti
della cocaina)
Ciao: warp

 Ci conto: la cosa m'interessa  ;-)
Grazie... comunque vada discutendo imparo sempre molte
cose...
ByZ-2K

 della cocaina)
:)))))) tonk... (rumore del mento che mi è caduto)
Ciao
ByZ-2K

 e ricreando a mano (che pizza! :) ) quelli corrotti!
A occhio e croce la situazione dovrebbe migliorare...
Ciao, warp

 A occhio e croce la situazione dovrebbe migliorare...
La situazione sembrerebbe (con mille se e duemila forse) leggermente
migliorata... ma ci sono troppe variabili in gioco e quindi lo vedrò nei
prossimi tempi.
A proposito, ho modificato quei parametri nel registro.... in effetti mi
sembra un pochino
più veloce, ma non so se è semplicemente il "desiderio" che sia così :))))
Comunque farò la prova del 9. Modificherò questi parametri sul PC di alcuni
colleghi e
chiederò loro se rilevano qualche differenza....
Ciao
ByZ-2K

 chiederò loro se rilevano qualche differenza....
Ciao, warp

 temporanee.
Grazie warp per gli scambi di idee e i chiarimenti.
Quando avrò novità mi farò di nuovo vivo.
Ciao
ByZ-2K

"ByZ-2K" <


Sure!
Ciao: warp