Newsgroup: it.comp.appl.access
Titolo: Ma come cavolo funzionano le query di Access?

Stanotte ho portato un'applicazione piuttosto cazzuta in mdb Access in una
FE/BE Access + MySQL.
In barba a tutte le leggi di Murphy, la cosa ha funzionato perfettamente,
senza dover mettere mano assolutamente da nessuna parte. Il che, dopo anni
ed anni di dedizione alle interfacce X e dintorni, mi fa pensare che Access
è proprio una gran bella bestiola ...
Dico che l'applicazione è cazzuta perchè c'è una gran quantità di queries,
che rimandano ad altre queries, che rimandano ad altre queries ancora. La
cosa che mi lascia alquanto perplesso è che una query che fa join fra altre
due queries funzioni senza problemi. Che fa Access, "esplode"
contestualmente tutte le queries?
E c'è un altro fatto strano. Se cerco di sfruttare il wizard di
autocomposizione query scegliendo come origine campi delle tabelle e delle
queries basate sulla stessa tabella, Access mi dice che la cosa non è
fattibile. Tuttavia, se mi apro la finestra di progettazione query in
modalità struttura, riesco a scegliere tutte le tabelle e le queries che
voglio, così come i campi da qualsiasi tabella o query. Sarà un problema di
detto tool di autocomposizione?
Inoltre ho alcuni criteri di selezione presi da funzioni definite da me, e
funzionano esattamente come sull'mdb; sembra che sulla query che viene
inviata a MySQL ci sia direttamente il valore di tale funzione ...
La domanda mi sorge spontanea. Ma come cavolo funzionano le queries con
Access?
TIA, Sandro.
--------------------------------
Inviato via 
http://usenet.libero.it

"Sandro" <

Premetto che sto utilizzando Access come FE con SQL-Server e non mysql con
drivers ODBC (solo momentaneamente, in futuro convertirò in .ADP).
La forza delle tabelle collegate ODBC sta proprio in questo: tutto il codice
SQL funziona perchè i dati vengono portati in locale e le selezioni operate
da JET.
La conseguenza e che le prestazioni all'aumentare dei clients peggiorano
notevolmente (a meno di riscrive il codice SQL in modalità diretta).
Per sentito dire si vocifera che i Driver MyODBC siano più veloci della
media.
Ciao, Max

 notevolmente (a meno di riscrive il codice SQL in modalità diretta).
Cosa intendi per "codice SQL in modalità diretta" ?
AEOM

 ha scritto nel messaggio
news:agv60j$jv5$1...@lacerta.tiscalinet.it...

ODBCDirect e Query Pass Trought.
Ciao, Max

 media.
Non so, del resto non ho termini di paragone. Ma, a prima sensazione, credo
che l'accrocchio Access+MySQL funzioni a velocità da razzo.
;-)
Grazie, Sandro.


 che l'accrocchio Access+MySQL funzioni a velocità da razzo.
Quanti records e quanti posti?
Ciao, Max

 Quanti records e quanti posti?
I posti sono, ad oggi, una decina. Le prove lo ho fatte con 300.000 records,
che dovrebbe essere il prodotto di circa un anno di movimentazione. Più in
la, se sarà il caso, mi ingegnerò in qualche artificio di archiviazione ...
Ciao, Sandro


 la, se sarà il caso, mi ingegnerò in qualche artificio di archiviazione
Però, pensavo meno.
E l'impianto nell'insieme si muove bene, mi sembri soddisfatto...
Per curiosità: cosa fanno i programmi?
Ciao, Max

 Per curiosità: cosa fanno i programmi?
Logistica avanzata (come dicono loro, i clienti ...) Si tratta di un
software di automazione delle procedure logistiche di un depositario. La
criticità dell'attività è elevata, trattandosi dell'unico distributore
nazionale, che fa logistica e distribuzione su tutto il territorio
nazionale; il sistema traccia movimenti, mappe di prelievo secondo criteri
legati a lotto di produzione e scadenza, spunta dei bancali mediante
terminali in radiofrequenza; prossimamente anche esposizione su internet e,
non è escluso, interfacciamento a carrello trasportatore/smistatore
meccanico ... speriamo bene.
Ciao, Sandro.


 meccanico ... speriamo bene.
Un progetto sofisticato, interessante ... complimenti ;-)
Ciao, Max

 problema sotto altri aspetti però_
Niubbo sono ... come ti dicevo sull'altro mex. Ma ho letto pareri
discordanti in merito al trattamento dei vincoli d'integrità. Credo, BTW,
che molto dipenda del problema specifico ... ma non mi esprimo oltre, perchè
mi rendo conto di non avere sufficiente esperienza per esprimere un giudizio
sensato in merito ... ;-)
Fra un po appendo un nuovo mex nel quale riporto i risultati di una notte di
sperimentazione MySQL + Access.
Max, sono molto lieto di aver interagito con te ;-)
A presto, Sandro.


Credo di essere in topic, se così non è mi scuso in anticipo con il gruppo.
Questa notte l'ho passata a fare qualche esperimento. So che qualcuno
(magari molti o tutti) di voi sorriderà di fronte all'acqua calda che ho
sperimentato, me per quei pochissimi che ancora non ci hanno provato riporto
qualche performance test.
Il server: Pentium MMX 166 MHz con 32 MB di ram e disco EIDE con 6 giga, con
sopra Linux RH7.2 e MySQL (non chiedetemi come un catorcio del genere riesca
a stare in piedi, ma tant'è ;-))
Il client: un portatile con Access 2000 e i drivers MyODBC.
Ho generato un file asci di UN MILIONE di record e l'ho importato (con
mysqlimport) su un paio di tabelle MySQL, l'ho maneggiato da Access
collegando le tabelle attraverso i drivers MyODBC.
Pesco, con una selezione LIKE, un record fra un milione, in circa 10
secondi.
Le selezioni su campi non chiave rispondono al max in 15 sec.
In circa 30 sec. faccio update di un campo su tutto il milione di record.
La query più incasinata che son riuscito a pensare, join fra queries di
aggregazione fatte su altre queries, insomma un malloppo di SQL sensa senso,
giusto per costringere il db a scorrere e lavorare, ci ha messo 80 secondi.
Ho l'impressione che MySQL e i driver MyODBC lavorino con una sinergia fuori
dal comune. Il disco del server frulla poco, quello del client con Access
anche, il led della scheda di rete lampeggia (sensazioni qualitative) in
modo abbastanza regolare. I resultset mi vengono visualizzati a pagine di un
migliaio l'una ... sembra che sotto non giri proprio nulla ... ho photoshop
e IE e, nel minuto circa di attesa, mi faccio un giro su yahoo per
controllare la posta elettronica ...
Con un Pentium MMX, 32 mega di RAM e 6 giga di disco dal lato server :-|
Sono senza parole, non oso pensare se metto su un server anche solo un po
più serio.
Anzi, più tardi in azienda proverò su di una macchina vera a macinare 5
milioni di record. E, se vi interessa, vi riporto i risultati.


 milioni di record. E, se vi interessa, vi riporto i risultati.
facci sapere e se va come deve andare te lo regalo io un muose per il pc
nuovo (ehm... mi sa che č giunta l'ora di cambiarselo, non farlo piů
soffrire, sarebbe accanimento terapeutico...)
;-)
ciao MAssimiliano

"Sandro"








Io più che senza parole sono sbalordito!
Ma come diavolo fa??
Però adesso voglio sbregare: crea una form continua sulla milionata di
records e associa a un paio di campi Combo che peschino valori da tabelline
di supporto ... sarei assai curioso di vedere quanto variano le
performances...
Comunque scaricherò MySQL quanto prima: voglio toccare con mano ;-)
Ciao, Max

 Comunque scaricherò MySQL quanto prima: voglio toccare con mano ;-)
Si si, e magari ci fai sapere ...
