Velocizzare DB BE - FE in LAN

di il
10 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

10 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!!!

  • Re: Velocizzare DB BE - FE in LAN

    Grazie per le risposte.


    Non ho mai sentito parlare di RDBMS, ho cercato un po online ma non ho trovato importazioni automatiche da access a rdbms mentre se ho letto bene mi sembra sql ha un wizart che importa il database access in sql e poi si mantengono i FE access….

    Domani quasi quasi provo ad installre un sql server… vorrei vedere se la velcoita non cala quando ci sono piu utenti collegati …tanto devo importare solo il BE giusto?


    Ma in questo forum non c’è modo di parlare in privato con qualcuno di voi magari anche poter far vedere alcune cose?


    molte Grazie

  • Re: Velocizzare DB BE - FE in LAN

    In aggiunta a quanto già esposto, ti consiglierei vivamente di farti periodicamente un backup del tuo BE. Lavorare in multiutenza con access c'è anche il rischio che il BE possa portarsi in uno stato di non coerenza. Come già detto access non è stato ottimizzato per lavorare in rete.

  • Re: Velocizzare DB BE - FE in LAN

    Si grazie abbiamo previsto tramite codice che ad ogni apertura del db lui invii ad una cartella una copia come backup avente nome del file la data del giorno nella quale e’ stato creato.

    @Alex puoi contattarmi?

    Mio contatto: info823  chiocciola (provider google)

    Grazie

  • Re: Velocizzare DB BE - FE in LAN

    Il forum non è un servizio di help desk

  • Re: Velocizzare DB BE - FE in LAN

    23/01/2025 - 823 ha scritto:

    Si grazie abbiamo previsto tramite codice che ad ogni apertura del db lui invii ad una cartella una copia come backup avente nome del file la data del giorno nella quale e’ stato creato.

    @Alex puoi contattarmi?

    Mio contatto: info823  chiocciola (provider google)

    Grazie

    Il forum come ti hanno già detto non prevede contatti diretti, aggiungo anche che io do alcun tipo di consulenza esaterna.

    Un RDBMS non è altro che un Database Server, ce ne sono di varie fatture, puoi provare SQL_SERVER Express che è gratuito ma soddisferà abbondantemente le tue esigenze.

    Ovviamente il programmatore dovrà studiarsi, se non ha mai interagito con un RDBMS, le modalità di connessione ma soprattutto di interazione nelle interrogazioni dei dati.

    Quì puoi scaricare il SW. 

    https://www.microsoft.com/it-it/download/details.aspx?id=104781

  • Re: Velocizzare DB BE - FE in LAN

    Ok, non era mia intenzione usare il forum come helpdesk.

    L'amico che mi ha seguito il tutto in questo periodo è troppo incasinato....

    Ho provato a importare il database con sql wizard, ma neanche l'importazione sono capace a fare....nella preview sembra nn veda nessuna tabella (mancherà chiave primaria nelle tabelle ?)  poi non so cosa va messo su indirizzo server ...mi serve una persona che mi dia una mano a fare questa cosa.

    Ovviamente pago quello che è il lavoro, ci mancherebbe.

    Molte grazie se qualcuno potrà aiutarmi

  • Re: Velocizzare DB BE - FE in LAN

    Questo è un forum tecnico, non può essere usato per ricerca di collaboratori.

    Il thread si è esaurito, passo alla chiusura.

Devi accedere o registrarti per scrivere nel forum
10 risposte