Velocizzare DB BE - FE in LAN

di il
3 risposte

Velocizzare DB BE - FE in LAN

Buongiorno a tutti,


Un amico mi ha creato un database Access secondo mie specifiche che funziona perfettamente. 
Ho una rete locale con quattro client e un server, su quest’ultimo abbiamo messo il BE e sui client abbiamo distribuito il FE. Tenete presente che il FE pesa circa 8 MB mentre il BE pesa circa 80 MB.

Fintanto che è loggato un solo utente va tutto bene ma nel momento in cui si loggano due/tre utenti la velocità e le prestazioni degradono spaventosamente.

Premetto che purtroppo di codice capisco molto poco… In questo forum ho trovato questo thread:

https://www.iprogrammatori.it/forum-programmazione/access/access-lento-lan-t48946.html

Dove si consigliava di fare modifica per “tenere aperta la connessione con il db”, L’ho segnalato al mio amico che l’ha implementato nel database: prestazioni leggermente migliorate ma quando si loggano piu utenti la situazione è sempre molto lenta.

In una copia del db ho fatto una prova cancellando un bel po di dati dal BE e portandolo a circa 40 mb e ho visto che anche con 4 utenti connessi le velcoita sarebbero buone! … nella mia ignoranza chiedo…dal momento che il BE ha  2 tabelle con tutti i dati si potrebbe dividere in 2 il BE e crearere 2 BE da 40 mb ? … e il FE in base al comando sa se prendersi l’informazione sul BE1 o il BE2 ?


Cosa dite?


Avete qualche altro consiglio o suggerimento che potremo provare?


Forse avrei bisogno di far vedere questo db a qualcuno di competente (persone che sicuramente ci sono in questo forum) per avere un feedback, e implementare eventuali modifiche… ma non posso postarlo in pubblico qui sul forum.


Molte grazie a tutti

3 Risposte

  • Re: Velocizzare DB BE - FE in LAN

    Dare pareri su un progetto che non si conosce sarebbe poco serio... solitamente gli errori commessi che possono inficiare la velocità possono essere i più disparati, dalla mancata gestione Indici nelle tabelle, ai modi non ottimizzati di gestione dei dati ecc...ecc... ecc...

    Ciò detto dal momento che non abbiamo possibilità di analizzare il prodotto l'unica risposta che ha senso di essere data è quella di sostituire il BE con un RDBMS e non con JET che non è un prodotto da usare in rete, a maggior ragione in multiutenza...

    Ovviamente usare un Db Server richiede una conoscenza su come si usa un prodotto di questo tipo che è tutt'altra cosa rispetto a JET dalla presenza di strumenti come StoredProcedure, Viste e non ultimo UDF e TSQL.

    L'approccio ai dati deve essere ottimizzato per far lavorare al meglio il server e non Access(JET) in locale quando usato come Client, sembra una affermazione banale... ma molti relativamente esperti non hanno proprio le idee chiare su questi aspetti...

  • Re: Velocizzare DB BE - FE in LAN

    Ciao, per dare una risposta valida bisognerebbe capire come è strutturato il database e gli accessi con le stringhe di connessioni e metodi.

    Gli espedienti sicuramente non risolvono il problema, anzi potrebbero far sorgere ulteriori problemi.

    MsAccess come interfaccia utente potrebbe anche andare bene e avere delle prestazioni accettabili.

    MsAccess come database invece è molto debole e alle volte carente in taluni scenari.

    Per esperienza diretta posso darti un consiglio molto semplice, pratico, affidabile e robusto che è... cambiare database, per esempio e a costo zero, potresti pensare di utilizzare SqlServer e mantieni come interfaccia utente MsAccess. 
    Posso garantirti che non avrai mai problemi ne di prestazioni, di spazio fisico, sicurezza e molto altro.

    Ricordo molto bene e si parla di più di 20 anni fa, con tale architettura avevo implementato e distribuito nei 40 client aziendali e nei 30 client che si collegavano da remoto, talune informazioni da inserire, aggiornare e visualizzare per poi successivamente poterle rendere fruibili in ambiente office... dall'e-mail, all'export in excel, in documenti Pdf, Word, etc etc.... 
    Purtroppo all'epoca era il sistema migliore se non l'unico per poter interfacciare i dati di un database in ambiente As/400 con il mondo Office.

    Su decine di milioni di records, mai perso un informazione e prestazioni no problem. 

    Pertanto ti consiglio di cambiare il database (e puoi mantenere MsAccess come interfaccia user) con uno più robusto e prestante... ma non solo, in questo modo puoi anche blindare gli accessi gestendo a modo le police di accesso con i relativi permessi alle tabelle e tante altre cosucce.

  • Re: Velocizzare DB BE - FE in LAN

    22/01/2025 - @Alex ha scritto:

    Ovviamente usare un Db Server richiede una conoscenza su come si usa un prodotto di questo tipo che è tutt'altra cosa rispetto a JET dalla presenza di strumenti come StoredProcedure, Viste e non ultimo UDF e TSQL.

    L'approccio ai dati deve essere ottimizzato per far lavorare al meglio il server e non Access(JET) in locale quando usato come Client, sembra una affermazione banale... ma molti relativamente esperti non hanno proprio le idee chiare su questi aspetti...

    Semplicemente perfetto!!!

Devi accedere o registrarti per scrivere nel forum
3 risposte