Questo sito usa dei cookie (per informazioni sulla gestione dei cookies fai click qui)tecnici per poter funzionare, non vengono usati cookie di terze parti ne tantomeno vengono creati profili.

Bug 96 - Query geografiche troppo lente
Summary: Query geografiche troppo lente
Status: RESOLVED DONE
Alias: None
Product: anArchive
Classification: Unclassified
Component: server (show other bugs)
Version: 5
Hardware: All All
: --- major
Assignee: Edoardo Panfili
URL:
Keywords: gis
Depends on:
Blocks:
 
Reported: 2011-07-30 10:47 CEST by Edoardo Panfili
Modified: 2012-04-27 12:31 CEST (History)
1 user (show)

See Also:


Attachments

Description Edoardo Panfili 2011-07-30 10:47:12 CEST
Il problema è legato ai calcoli di distanza sul geoide. O si fanno approssimati (geometry, si mettono con un trigger non è un problema)

EXPLAIN ANALYZE SELECT count(*) from cartellino, confini 
WHERE confini.regione='UMBRIA'
AND ST_Intersects(cartellino.the_geom,confini.the_geom_bis);
Total runtime: 60.483 ms

oppure si fanno per bene (con tempi inaccettabili)
EXPLAIN ANALYZE SELECT count(*) from cartellino, confini 
WHERE confini.regione='UMBRIA' 
AND ST_Intersects(cartellino.punto,confini.margine);
Total runtime: 10015.976 ms

Si può provare a ragionare sui bounding box:
EXPLAIN ANALYZE SELECT count(*) from cartellino, confini 
WHERE confini.regione='UMBRIA' 
anArchive5-> AND cartellino.punto && confini.margine;
Total runtime: 0.611 ms

Ovviamente l'ultima da troppi risultati, bisogna provare con dei margini semplificati ma non tanto quanto i boundingbox.
Comment 1 Francesco Geri 2011-08-02 09:31:28 CEST
Immagino che gli spatial index siano già attivi. Altrimenti dovrebbe essere qualcosa del genere...

ALTER TABLE tabella ALTER COLUMN geom SET NOT NULL
create index nomeindice on tabella using gist(geom);
Comment 2 Edoardo Panfili 2011-08-02 10:48:46 CEST
purtroppo c'erano. Credo in pate dipenda anche dall'elevato numero di punti del poligono regione.
Comment 3 Francesco Geri 2011-08-02 11:28:15 CEST
Se vuoi posso provare a semplificare il numero dei vertici del poligono regione. Ho visto che in totale ci sono 460087 vertici. Posso provare a ridurre il numero di vertici di circa la metà e rimandartelo.
Che ne dici?
Comment 4 Edoardo Panfili 2011-09-20 08:36:05 CEST
Adesso c'è un campo calcolato sia nei cartellini che nei rilievi che permette di fare conti di tipo geometrico, così i dati sono salvati nel tipo corretto (geogr) e poi le ricerche vengono fatte in maniera veloce (supponendo che l'errore introdotto da geometr sia accettabile)
Comment 5 Edoardo Panfili 2012-03-25 20:05:18 CEST
consideriamo ammissibile la cosa così come è?
Comment 6 Francesco Geri 2012-03-26 10:22:35 CEST
Per me è ok.

Note You need to log in before you can comment on or make changes to this bug.