MS SQL Spatial als zentraler Datenspeicher?

9

Ich habe daran gearbeitet, unsere Geodaten von einem proprietären System für ein System zu öffnen, das von weiteren Produkten gelesen werden kann (MapGuide, ESRI, gvSIG, Map3D usw.).

Ich habe mich für SQL Spatial entschieden, da uns ein eigener Server zur Verfügung steht und wir über diesen problemlos eine Verbindung zu anderen Systemen herstellen können.

Gibt es etwas, von dem ich wissen sollte, dass es die Leistung erheblich beeinträchtigen kann, bevor ich es tatsächlich als zentralen Datenspeicher verwende?

Jamo
quelle

Antworten:

6

Meine Antwort bezieht sich nicht auf die Leistung, aber beachten Sie, dass Sie auf einfache Funktionen und eine begrenzte Anzahl von Spatial SQL-Abfragen beschränkt sind. Nicht, dass dies notwendigerweise eine schlechte Sache wäre, obwohl ich schnell festgestellt habe, dass mir einige der SQL-Abfragen, die beispielsweise in Postgres oder Oracle verfügbar sind, fehlen. Die einfachen Funktionen, die ich wirklich mag, ermöglichen es Ihnen, gute Datenbankpraktiken zu befolgen und Ihre Daten in Linien, Polygone, Beziehungen umzuwandeln, was immer Sie wollen.

westyvw
quelle
2
Die neueste Version erlaubt Kurven / Kreisbögen und der Geografietyp hat jetzt alle räumlichen Funktionen, die die Geometrie hat
Geografie
5

Verwendet die Multi-Grid-Indizierung anstelle von R-Tree als PostGIS und Oracle.

Nicht leistungsbezogen, aber vielleicht wichtig:

Unterstützt keine Koordinatentransformationen.

Es gibt einen kleinen Unterschied in der SQL-Syntax. Beispiel:

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

Es gibt wahrscheinlich noch mehr, aber momentan kann ich mich nicht an sie erinnern :)

Mario Miler
quelle
5

Ein paar Negative:

  • Wie von Mario erwähnt, bedeuten keine eingebauten Projektionswerkzeuge, dass zusätzliche Software (FME oder GDAL sind nützlich) erforderlich ist, um Daten neu zu projizieren

  • Bei einigen räumlichen Abfragen (Schnittpunkten / innerhalb) fehlt die Leistung, und räumliche Indizes müssen manuell erstellt werden, obwohl in der nächsten Denali-Version anscheinend erhebliche Leistungsverbesserungen und "automatische" räumliche Indizes vorgenommen wurden

  • Keine lineare Referenzierung (kann aber mit .NET-Code hinzugefügt werden - siehe unten)

  • Mangel an Community - Unter http://sqlspatialtools.codeplex.com/ gibt es ein verwandtes OpenSource-Projekt mit wenig Aktivität, sodass Treiber und Tools Microsoft-Versionen ausgeliefert sind. Nicht zu viele SQL-Beispiele.

  • MapServer und GDAL verfügen jetzt beide über SQL Server 2008-Treiber, die jedoch erst kürzlich veröffentlicht wurden - einige Jahre nach anderen räumlichen Datenbanken.

Auf der positiven Seite:

  • Integration mit .NET. Da SQL Server die Ausführung von .NET-Code in der Datenbank ermöglicht, kann die Funktionalität von .NET-DLLs und -Bibliotheken in Ansichten, gespeicherten Prozeduren, Triggern usw. enthalten sein. Bibliotheken wie http://projnet.codeplex.com/ können dies sein enthalten, um Reprojektionen in der Datenbank zu ermöglichen.

  • proprietäre Systeme enthalten alle SQL Server-Treiber / -Lader usw.

  • Viele Organisationen verfügen bereits über SQL Server-DBAs, Server und Sicherungsprozesse

  • Das SQL Server Management Studio ist ein sehr schönes Tool und enthält räumliche Visualisierungen

  • OGC-Standards für räumliche Methoden und einfache Funktionen

geographika
quelle
3

Wenn Ihre Daten als Geografietyp auf globaler Ebene gespeichert werden, müssen Sie die Hemisphärenbeschränkung kennen .

Kirk Kuykendall
quelle
Dank Kirk werden die Daten als Geometrie gespeichert, daher sollte dies kein Problem sein. Die Grenzen des Projektbereichs sind relativ klein. Bisher habe ich erfolgreich 36.000 Funktionen in SQL (Dienstprogramme, Kataster und andere verschiedene Funktionen) integriert.
Jamo
Die neueste Denali-Version von SQL Server bietet Unterstützung für räumliche Objekte mit vollständigem Globus - anscheinend "Branchenneuheiten für relationale Datenbanksysteme"
geographika