MS SQL Server 2008 Spatial Indexing – ça marche?

Quelqu'un a-t-il essayé de l'utiliser et peut-il dire s'il est bien appliqué?

– Assaf (qui a passé les dernières semaines à être de plus en plus frustré par l'implémentation déficiente des fonctions OpenGIS de MySQL et envisage maintenant de passer à MSSQL)

Oui, ils travaillent.

Je viens de passer une de mes classs d'une requête ESRI-ArcObject en utilisant ISpatialFilter à une SqlCommand qui returnne les mêmes données. C'est une search de proximité (returnner tous les loggings qui se trouvent à less de 1000 pieds du point x).

Au début, la requête ESRI était encore plus rapide mais cela était dû à une clause where mal construite (j'apprends toujours à utiliser les fonctions spatiales dans SQLSVR2008).

Après quelques ajustements, ma méthode SQL était plus rapide que la méthode ESRI mais pas beaucoup. Puis j'ai levé ma distance de search jusqu'à 10000 pieds et puis j'ai vu la différence. La méthode SQL Server 2008 était beaucoup plus rapide.

(ESRI) Rechercher Clients à proximité Temps écoulé (secondes): 1.503 (SQL2008) Interroger les clients proches Temps écoulé (secondes): 0.925

Bien que les différences de vitesse n'ont pas à faire avec les index, mais avec ESRI-ArcObjects. Dans ma méthode ESRI, j'obtiens ma distance, x, et y de IProximityOperator et IPoint. Dans la méthode SQL2008, je laisse la database faire tout le travail: SHAPE.STX comme X, SHAPE.STY comme Y, SHAPE.STDistance (mais les développeurs ArcObject savent tout sur cette surcharge).

Je suis printingné jusqu'à présent.

Oui cela fonctionne, j'ai un exemple de code ici SQL Server 2008 Proximity Search avec le type de données géocharts

Oui. Ils sont implémentés correctement. Vous avez également PostGIS de PostgreSQL en option, Oracle Spatial . Informix et DB2 ont également des implémentations d'un type spatial.