Come passare da oltre 2 minuti a 2 secondi di elaborazione query? Semplice, basta usare gli indici!!!
Abbiamo un database con due tabelle:
studenti_verso_pescara
semplice tabella senza geometria;centroidi_comuni_italia_2019
geo-tabella

La query sottostante impiega oltre 2 minuti
SELECT origine, destinazione, valore, makeline(a.geometry, b.geometry) AS geometry
FROM "studenti_verso_pescara" s
JOIN "centroidi_comuni_italia_2019" a ON (s.origine = CAST (a."PRO_COM" AS INTEGER))
JOIN "centroidi_comuni_italia_2019" b ON (s.destinazione = CAST (b."PRO_COM" AS INTEGER))
WHERE CAST(a."PRO_COM" AS INTEGER) != CAST(b."PRO_COM" AS INTEGER);
creo due indici nella tabella studenti_verso_pescara
(campi origine
e destinazione
:
DROP INDEX IF EXISTS idx_origine;
CREATE INDEX idx_origine ON "studenti_verso_pescara"(origine);
DROP INDEX IF EXISTS idx_destinazione;
CREATE INDEX idx_destinazione ON "studenti_verso_pescara"(destinazione);
e la stessa query di prima restituisce l’output in meno di 3 secondi!!! (wow)
NOTE FINALI: gli indici sono nati proprio per velocizzare la ricerca e quindi un buon uso puo’ far risparmiare molto tempo. Le prestazioni dipendono anche dalle risorse del PC.
RIFERIMENTI
- SpatiaLite: https://www.gaia-gis.it/fossil/libspatialite/index
- Indici: https://it.wikipedia.org/wiki/Indice_(basi_di_dati)
- CookBook spatialite 5: https://www.gaia-gis.it/gaia-sins/spatialite-cookbook-5/index.html
- SpatiaLite Topic: https://www.gaia-gis.it/gaia-sins/spatialite_topics.html
RINGRAZIAMENTI
- Alessandro Furieri (papà di SpatiaLite)

DATABASE (prova tu)
Se il blog post vi è piaciuto cliccate su ‘Mi piace’, grazie!!!
if you liked the blog post click on ‘Like’, thank you !!!
Se il post vi è stato utile contribuite a mantenerlo aggiornato PayPal
Totó: le due lettere “a – s” inserite appena dopo il nome della tabella, sostituiscono il nome completo della tabella? wow! pensavo bisognasse segnalare questa opzione nella clausul FROM per forza e con AS… molto piú veloce cosí! ottimo!!
"Mi piace"Piace a 1 persona
Ciao Luca,
sì sono gli Alias, per le tabelle puoi non mettere AS
grazie
"Mi piace""Mi piace"
Stupendo! stav studiando un pó Postgis, e magari mi confondo di dialetto pure!
Un dubbio: dentro la GUI, é possibile vedere il risultado geometrico? o meglio importare il tutto in QGIS ed eseguirlo lí? GRazie!
"Mi piace"Piace a 1 persona
Sì, puoi vedere il risultato geometrico anche nella gui di spatialite.
"Mi piace"Piace a 1 persona
Grazie, controllo come. Ciao!
"Mi piace"Piace a 1 persona
Ciao
"Mi piace""Mi piace"