Buongiorno a tutti.
Come alcuni di voi sanno, l'unico mio programmone in Gambas3 si chiama ContabFam e gestisce all'interno delle sue classi un DB Sqlite3.
Quest'ultimo, dopo anni di accumulo dati, distribuiti nelle sue 13 tabelle , ha raggiunto volumi ragguardevoli. Ordinariamente i tempi di risposta sono eccellenti, tranne che quando avvio la ricerca per la stampa dei movimenti contabili registrati per una giornata qualunque delle di tutte quelle presenti, nel DB.
Per la ricerca dei movimenti viene eseguito un 'accesso al DB per lo scorrimento dei record contenuti principalmente nella tabella dei movimenti giornalieri di cassa che contiene al momento oltre 54000 record (complessivamente il DB è formato da circa 106000 record). Per la precisione, dalla schedulazione dell'evento, alla emissione della finestra contenenti i dati richiesti, passano circa 24". Mi sembrano veramente tanti.
Rispetto a circa 2 anni fa il tempo d'attesa è più che raddoppiato , perciò penso che continuando ad ingrossare il volume del DB, più avanti, potrò benissimo avviare la richiesta, e nel frattempo, andare a prendere un caffè al bar. Al mio rientro, troverò la finestra coi movimenti della giornata.
Allora ... per evitare di prendere dover troppi caffè, sto cercando una soluzione, in modo da fare rientrare il tempo di risposta ad un intervallo ragionevole per un minielaboratore.
La mia lunga esperienza nel campo dell'elaborazione dei dati mi dice che le strade possibili sono 2, alternativa l'una rispetto all'altra:
- indicizzare tutte le tabelle del DB;
- frazionare il DB attuale un più DB, di ridotte dimensioni.
Le due alrrenative sono entrambi onerose, ma io non ne conosco altre.
Ricordo che all'epoca della realizzazione del mio progetto non sono riuscito a creare un indice nel DB in questione.
Chi mi vuole dare una mano ad avviare uno studio sulla riorganizzazione del DB?