MS SQL Spatial come Datastore centrale?


9

Ho lavorato per aprire i nostri dati spaziali da un sistema proprietario a uno che può essere letto da più prodotti (MapGuide, ESRI, gvSIG, Map3D ecc ....)

Ho deciso di utilizzare SQL Spatial in quanto disponiamo di un server interno e possiamo collegarci ad altri sistemi abbastanza facilmente tramite esso.

Prima di andare a usarlo davvero come il nostro archivio dati centrale c'è qualcosa di cui dovrei essere consapevole che potrebbe ridurre notevolmente le prestazioni?

Risposte:


6

La mia risposta non riguarda le prestazioni, ma tieni presente che sei limitato a Funzionalità semplici e a un set limitato di query SQL spaziali. Non che questa sia necessariamente una brutta cosa, anche se ho rapidamente trovato il bisogno di alcune delle query SQL disponibili in Postgres o Oracle. Le semplici funzionalità che mi piacciono, mantenerlo semplice ti consentono di seguire le buone pratiche del database e ti consentono di trasformare i tuoi dati in linee, poligoni, relazioni, qualsiasi cosa tu voglia.


2
L'ultima versione consente curve / archi circolari e il tipo di geografia ora ha tutte le funzioni spaziali che la geometria ha
geographika

5

Utilizza l'indicizzazione multi-griglia anziché R-Tree come PostGIS e Oracle.

Non correlato alle prestazioni ma forse importante:

Non supporta le trasformazioni di coordinate.

C'è una leggera differenza nella sintassi SQL. Esempio:

SELECT * FROM table1 WHERE the_geom.STIntersects(geometry::STGeomFromText('POINT(100 100)',0));

Probabilmente ce ne sono altri ma al momento non riesco a ricordarli :)


5

Alcuni aspetti negativi:

  • come menzionato da Mario, nessuno strumento di proiezione integrato significa che per riproiettare i dati sono necessari software aggiuntivi (FME o GDAL sono utili)

  • le prestazioni mancano per alcune query spaziali (interseca / all'interno) e gli indici spaziali devono essere creati manualmente, anche se nella prossima versione di Denali apparentemente ci sono stati enormi miglioramenti nelle prestazioni e indici spaziali "auto"

  • nessun riferimento lineare (ma può essere aggiunto con il codice .NET - vedi sotto)

  • mancanza di comunità: esiste un progetto open source correlato su http://sqlspatialtools.codeplex.com/ con poca attività, quindi driver e strumenti sono in balia delle versioni di Microsoft. Non troppi esempi SQL.

  • MapServer e GDAL ora hanno entrambi i driver di SQL Server 2008, ma questi sono usciti solo di recente, diversi anni dopo altri database spaziali.

Il lato positivo:

  • integrazione con .NET. Poiché SQL Server consente l'esecuzione del codice .NET nel database, consente la funzionalità delle DLL e delle librerie .NET da includere in viste, procedure memorizzate, trigger, ecc. Librerie come http://projnet.codeplex.com/ possono essere incluso per consentire riproiezioni nel database.

  • tutti i sistemi proprietari includono driver / caricatori di SQL Server ecc.

  • molte organizzazioni dispongono già di DBA, server, processi di backup di SQL Server

  • SQL Server Management Studio è uno strumento molto utile e include visualizzazioni spaziali

  • Standard OGC per metodi spaziali e caratteristiche semplici


3

Se i tuoi dati sono archiviati come tipo geografico su scala globale, devi essere consapevole della limitazione dell'emisfero .


Grazie a Kirk i dati verranno archiviati come geometria, quindi questo non dovrebbe essere un problema, i limiti dell'area del progetto sono relativamente piccoli, finora ho portato con successo circa 36.000 funzionalità in sql (utility, catasto e altri vari artisti)
Jamo,

L'ultima versione Denali di SQL Server include il supporto per oggetti spaziali a globo intero - apparentemente "primi nel settore per i sistemi di database relazionali"
geographika
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.