Migrazione ad altro tipo di DB (back-end)

di il
6 risposte

Migrazione ad altro tipo di DB (back-end)

Buongiorno a tutti,

In ditta abbiamo un DB Access diviso in front-end e back-end.
I front-end sono distribuiti su vari PC mentre il file del back-end risiede su un NAS Synology in una cartella condivisa.

Gli utenti contemporanei sono sotto i 10 ma stiamo prevedendo di collegare i dispositivi dei dipendenti per gestire le commesse ed altro ancora.
Potremmo quindi raggiungere anche una trentina di connessioni contemporanee a livello teorico.

Il back-end è costituito da circa 200 tabelle, di cui molte sono accessorie ed hanno pochi record, mentre una decina circa hanno, ad oggi, circa 20000 record ed una ventina di campi ciascuna.

L'andazzo prevede circa 5000 record all'anno per ciascuna di queste tabelle.
Non credo sia un grande volume di dati quindi.

Attualmente non abbiamo problemi ed il DB è ragionevolmente utilizzabile.
I front-end contengono routine anche abbastanza complesse ma tutto è nella norma.

Però tutto si evolve e dobbiamo rimanere al passo delle richieste e delle necessità dei nostri clienti.
La mia idea era quella, quindi, di "aprire" il back-end in modo da poterci interfacciare con vari strumenti (una lavagna elettronica che mi permetta di visualizzare e gestire tramite diagrammi di gantt le commesse e gli operai, inserimento delle ore delle commesse direttamente da parte dei dipendenti, ecc...).
Siccome Synology supporta MariaDB ho fatto dei test convertendo il back-end e provando ad interfacciarmi con il front-end di access (connettore DNS).
Tuttavia routine e query risultano essere sensibilmente più lente e quasi ingestibili.

Dite che dipende dall'hardware ()? La rete è Gigabit, i router e gli switch sono Mikrotik, il NAS ha due dischi in Raid 1 da 3TB.

Oppure quello che intendo fare è strutturalmente limitato?

Cosa mi consigliereste di fare? Sono disposto a cambiare anche radicalmente tutti i sistemi e a fare il giusto investimento perchè se non facciamo questo passo entro qualche anno saremo tagliati fuori dai giochi.
Nel mio caso in quale direzione andreste?

Grazie mille!
Mauri

6 Risposte

  • Re: Migrazione ad altro tipo di DB (back-end)

    Spannometricamente:

    1) Access NON E' un database adatto per accesso concorrente. SI puo' fare e si fa, ma funziona fintanto che il numero di connessioni ed il traffico dati e' limitato

    2) MariaDB, MySQL, Oracle, ecc, sono tutti DBMS PENSATI per supportare moltissime connessioni, tabelle di GRANDI dimensioni (20.000 sono poco piu' di niente. Se fossero stati 20.000.000, ci si poteva ragionare ), possibilita' di realizzare DBMS in cluster, ecc..

    3) la lentezza delle query su un database (ed in particolare su MariaDB, ...) RARAMENTE e' legata SOLO all'hardware. Molto piu' probabilmente e' legata alla cattiva progettazione del database, alla mancanza di indici adatti alla velocizzazione delle query, oppure a query scritte in modo sbagliati, che calcolano dei prodotti cartesiani (combinazione di TUTTI record di una tabella con TUTTI i record di una seconda tabella, ad esempio con DUE tabelle da 20.000 record, vorrebbe dire generare 400.000.000 di combinazioni, numero "grandicello" ) e SOLO DOPO elimina i record inutili e magari questo elimina il 99% dei record.

    Quindi, il passaggio da Access a MariaDB (o equivalente) puo' essere una buona idea.
    L'acquisto di hardware dedicato ha senso SOLO DOPO che si sono fatte tutte le ottimizzazioni del caso e l'hardware risulta EFFETTIVAMENTE essere il collo di bottiglia.

    Ovviamente, non basta qualche post su un forum per capire come procedere, o capire dove sono (e quali sono) i problemi di performance.
    Bisogna studiare o trovare qualcuno che conosce la materia ed e' in grado, analizzando l'attuale situazione, di capire come procedere.
  • Re: Migrazione ad altro tipo di DB (back-end)

    Eccomi
    al 99% ritorni le tabelle intere invece che delle query
    mariadb anche su Nas è incomparabilmente più veloce di access, se usato con record set più piccoli possibile
  • Re: Migrazione ad altro tipo di DB (back-end)

    Grazie mille delle dritte e delle osservazioni!

    MariaDB allora è la strada da percorrere.

    Proverò a sistemare il front-end che ormai per noi è un'interfaccia imprescindibile.
    Se avrò problemi vi chiederò consiglio...

    Di sicuro poi mi rivolgerò a qualcuno di qualificato per realizzare le altre interfacce e gli altri sistemi!

    Siete stati preziosi!
  • Re: Migrazione ad altro tipo di DB (back-end)

    Access e mariadb non sono proprio coppia che sceglierei
  • Re: Migrazione ad altro tipo di DB (back-end)

    Che front-end mi consiglieresti?

    Personalmente potrei provare a convertire il mio gestionale con visual studio (da autodidatta...dovrei iniziare da zero)..che dici? O è come access?
  • Re: Migrazione ad altro tipo di DB (back-end)

    Eccomi di nuovo.

    Stavo facendo dei test di velocità tra il mio Front End in Access e il Back End su MariaDB e lo stesso sul Back End in Access.

    Ho provato a vedere la query che mi popola una maschera continua.
    Tenendo conto che i record filtrati sono 400 e che la struttura è la seguente:

    https://i.postimg.cc/zGgFQhXq/a.jp

    Front End + Back End in Access all'apertura ci mette 1 secondo, e se cambio il mio filtro, aggiorna in 0,3 secondi.

    Con Front End in Access e Back End MariaDB all'apertura ci metto 5 sec e cambiando il filtro aggiorna in 2,5 sec.

    Cos'è che mi causa questo enorme ritardo secondo voi? Il totale dei record è circa 12000, ma sono filtrati e non c'è l'intera tabella...
Devi accedere o registrarti per scrivere nel forum
6 risposte