2009-02-04 20 views
1

Est-ce que quelqu'un a essayé de l'utiliser et peut dire si c'est bien implémenté?MS SQL Server 2008 Spatial Indexation - ça marche?

- Assaf (qui a passé les dernières semaines se de plus en plus frustrés par la mise en œuvre déficiente de MySQL de fonctions OpenGIS et envisage maintenant de passer à MSSQL)

Répondre

0

Oui, ils fonctionnent.

Je viens de commuter l'une de mes classes à partir d'une requête ESRI-ArcObject en utilisant ISpatialFilter à une SqlCommand qui retourne les mêmes données. C'est une recherche de proximité (retourner tous les enregistrements qui se trouvent à moins 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 encore comment 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 recherche jusqu'à 10000 pieds et puis j'ai vu la différence. La méthode SQL Server 2008 était beaucoup plus rapide.

(Esri) Chercher à proximité Les clients Temps écoulé (sec): 1,503 (SQL2008) Requête clients à proximité Temps écoulé (sec): 0,925

Bien que les différences de vitesse ne doivent pas faire avec les indices, 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 base de données 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 impressionné jusqu'à présent.