Prestazioni query su tabelle collegate via ODBC a MySQL

Anonimo
2015-11-30T15:45:31+00:00

Migrando un applicazione da Access '97 a Office 2013, ho riscontrato un notevole e generalizzato peggioramento nell'esecuzioni delle query su tabelle collegate mediante ODBC ad un DB MySQL, passando da pochi secondi necessari in Access '97 a più di un minuto in Access 2013.

Le due versioni di Access usano la stessa connessione allo stesso driver ODBC (v.5.3) allo stesso Server MySQL (v.5.6) - e nessun logging è attivo.

I test di prestazioni l'ho eseguito su un VM W7-32bit che ospita entrambe le versioni di Access.

Con alcune query più complesse il peggioramento delle prestazioni è molto evidente.

La navigazione di dati su maschere di Access, costituite da svariate sottomaschere che hanno come recordsource una tabella collegata, evidenzia in Access 2013 un tempo di refresh dei dati stessi "visibilmente" superiore a quello necessario in Access '97.

La migrazione da Access '97 ad Access 2013 l'ho effettuata in automatico fino ad arrivare al DB in formato 2007.

Avete qualche suggerimento per risolvere questa problematica?

grazie, Marco

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

3 risposte

Ordina per: Più utili
  1. Anonimo
    2015-12-07T22:21:41+00:00

    Ciao Marco

    invece di modificare le query potresti allora creare delle query pass-through ed attribuirgli lo stesso nome della tabella collegata, tutto il resto dovrebbe restare invariato.

    Le query che ora puntano alla tabella collegata dopo punteranno alla query pass-through avente lo stesso nome.

    Non conoscendo il tuo contesto, l'impatto, in termini di attività da svolgere, mi sembra minimo, considerando anche che le eventuali query pass-through possono essere create via codice nel caso fossero molte: ACC: How to Create an SQL Pass-Through Query in Code

    Prova a leggere anche questo post ad ulteriore conferma di questa possibile soluzione: mysql linked tables to ms access via ODBC performs poorly when insert update delete

    David

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-12-07T15:00:25+00:00

    Ciao, grazie per la risposta e scusa per il mio ritardo.

    Ho valutato l'uso delle query pass-through ed ho effettuato dei test che confermano le migliori prestazioni, come previsto.

    Pur considerando valida questa soluzione per nuove implementazioni nell'applicazione Access 2013, io speravo di poter migrare l'applicazione Access 97 verso Access 2013 a "costo zero" e quindi lasciare, almeno in una prima fase, le query così come sono, aspettandomi che le prestazioni offerte da Access 2013 nell'esecuzione delle query esistenti fossero comunque migliori o pari a quelle offerte da Access 97.

    Quindi pur considerando valido il tuo suggerimento e sicuramente praticabile per gli sviluppi futuri, ti chiedo se non ci sia alcun modo poter utilizzare le query esistenti mantenendo almeno invariate le prestazioni che già riuscivo ad avere in Access 97.

    Grazie, ciao Marco

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-11-30T22:28:34+00:00

    Ciao,

    hai provato a sostituire le query su tabelle collegate con query pass-through?

    Il vantaggio deriva dal fatto che l'elaborazione viene eseguita lato server ed a Access viene restituito solo il risultato.

    David

    La risposta è stata utile?

    0 commenti Nessun commento