Problemi velocità access - MySql

di il
3 risposte

Problemi velocità access - MySql

Ciao a tutti. Ho sviluppato un gestionale con Access come interfaccia e MySql come database. Da due giorni mi succede che, ad ogni cambio maschera, devo aspettare diversi secondi prima di riuscire a visualizzare la maschera popolata. Sembrerebbe un problema di rallentamento sulle query. Stranamente, sulle altre postazioni sulla stessa rete lan, tutto funziona regolarmente. Non riesco a capire se possa dipendere dalla scheda di rete (gigabit, e mi sono accertato che non vi siano problemi di rete) o da qualche impostazione/aggiornamento sul mio PC. Vi è mai capitato?

Grazie

3 Risposte

  • Re: Problemi velocità access - MySql

    Non conosco il tuo background, ma 9 su 10 in caso di utenti poco esperti, il problema è proprio la strutturazione di Query non adeguate, magari disperdendo dei controlli DataBound come Combo/ListBox con altrettante Query assegnate a RowSorce non propriamente ottimizzate.

    Ti faccio un esempio banale.
    QUERY LENTA
    
    SELECT * FROM T1
        WHERE Campo1=[Forms]!NomeForm!NomeTextBox
    Questa query non viene risolta dal motore MySQL, in quanto non in grado di capire cosa sia la WHERE... l'oggetto a cui si fa riferimento infatti per MySQL è intraducibile.
    La conseguenza è che NON viene risolta, ma scartata e convertita in
    
    SELECT * FROM T1
    Questo significa che MySQL spara l'intera tabella a JET, che poi in LOCALE applica la WHERE... direi un vero spreco di risorse.

    Le Query poi che fanno capo a Combo o ListBox potrebbero dare risultai migliori se fossero Query_PT, readOnly e risolte direttamente dal server senza il passaggio per l'interprete JET.

    Quindi nelle maschere è meglio usare la proprietà FILTER per introdurre criteri, in quanto lo stesso viene risolto ClientSide ed inviato sepratamente al Server già elaborato, ottimizzando soprattutto il traffico dati.

    Non dimenticare poi l'uso dei PARAMETERS... sconosciuti per la maggior parte, ma in questi casi salvano la vita, anche perchè le Maschere ed i Controlli DataBound possono essere associati non solo con RowSource o RecordSource, ma anche con il Recordset... che appunto estratto dall'utilizzo dei Parameters migliora le cose.

    Il tutto richiede un po di strutturazione.
  • Re: Problemi velocità access - MySql

    Grazie per la risposta dettagliata, come sempre. Mi toccherà approfondire le mie conoscenze. Soltanto che, nel caso specifico, visto che su altra postazione con la sola runtime installata l'esecuzione è immediata, credo che il problema sia altrove.
  • Re: Problemi velocità access - MySql

    Allora, sto facendo diverse prove, tra cui importare le tabelle mysql direttamente su Access. In tal modo tutto funziona in modo molto più velocemente, anche rispetto alle macchine che lavorano ancora sul DB MySql. Ho notato, inoltre, che quando viene lanciata una query, il disco di sistema lavora maledettamente. Non mi spiego la differenza tra le diverse macchine con db remoto MySql.
Devi accedere o registrarti per scrivere nel forum
3 risposte