Frage

Hat jemand es versucht, mit und sagen kann, wenn sie gut umgesetzt wird?

- Assaf (die in den letzten Wochen verbrachte zunehmend frustriert mit MySQL mangelhaften Umsetzung von OpenGIS Funktionen und erwägt nun die Umstellung auf MSSQL)

War es hilfreich?

Lösung

Ja, sie arbeiten.

Ich wechselte nur eine meiner Klassen aus einer ESRI-ArcObject-Abfrage zu einem SqlCommand mit ISpatialFilter, die dieselben Daten zurückgibt. Es ist eine Nähe suchen (alle Datensätze zurück, die im Umkreis von 1000 Meter Punkt x ist).

Zunächst wird die ESRI Abfrage war noch schneller, aber das war schlecht gebaut, um ein aufgrund where-Klausel, die sehr effizient ist (ich bin immer noch lernen, wie man die räumlichen Funktionen in SQLSVR2008 verwenden).

Nach einigen Optimierungen, war meine SQL-Methode schneller als die ESRI-Methode, aber nicht viel. Dann aufgebockt ich meine Suche Entfernung zu 10000 Fuß und dann sah ich den Unterschied. Die SQL Server 2008-Methode war viel schneller.

(ESRI) der Nähe suchen Kunden Abgelaufene Zeit (sec): 1.503 (SQL2008) Abfrage der Nähe Kunden Abgelaufene Zeit (sec): 0.925

Auch wenn die Geschwindigkeitsunterschiede müssen nicht mit dem Indizes zu tun, sondern mit ESRI-ArcObjects. In meiner ESRI Methode, erhalte ich meine Distanz, x und y von IProximityOperator und IPoint. Im SQL2008 Methode, ich ließ ich die Datenbank tun die ganze Arbeit: SHAPE.STX als X, SHAPE.STY als Y, SHAPE.STDistance (aber die ArcObject Entwickler wissen alles über die Overhead).

Ich bin so weit beeindruckt.

Andere Tipps

Ja, es funktioniert, ich habe einige Beispiel-Code hier SQL Server 2008 Proximity Search mit der Geographie Datentyp

Ja. Sie sind korrekt umgesetzt. Sie haben auch PostgreSQLs PostGIS als Option, Oracle Spatial . Informix und DB2 haben auch Implementierungen eines räumlichen Typ.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top