Vorrei sapere, se possibile, quale è il modo di creare indici spaziali (parliamo di tipo dato geometry e non geography) per velocizzare al massimo le query?
Il database geografico viene aggiornato spot ogni N mesi e quindi la velocità nelle insert non è per nulla un problema.
Inoltre quale è la funzione che da le migliori prestazioni per quanto riguarda la JOIN tra due tabelle volendo avere come risultato i record in cui un l'area in una tabella ha almeno un punto in comune con l'area nell'altra?
Attualmente uso una cosa del genere, lentissima:
codice:
SELECT
NAZIONI.ISO3,
gisLocations.location_id,
gisLocations.location_name
FROM
gisLocations
INNER JOIN
dbo.NAZIONI ON gisLocations.geom_circle_500m.STIntersects (NAZIONI.geom) = 1
Noto che Postgres ha una velocità di esecuzione terribilmente superiore rispetto SQL Server per quel che riguarda dati geografici, (una cosa nell'ordine del 100 a 1) nonostante attualmente sia installato su hardware nettamente inferiore.
E' una cosa risaputa per cui non resta da fare che progettare migrazioni in massa su Postgres oppure è semplicemente che in SQL SERVER ci sono altri modi per ottimizzare le query?
Nel caso esiste la possibilità di linkare il server postgres al server sql 2008 (so windows 2008 server 64 bit) ?
Ciao a tutti