Пространственная индексация MS SQL Server 2008 - работает ли она? - PullRequest
1 голос
/ 04 февраля 2009

Кто-нибудь пробовал использовать его и может сказать, хорошо ли он реализован?

- Ассаф (который провел последние несколько недель все больше и больше разочаровывался в несовершенной реализации MySQL функций OpenGIS и теперь рассматривает возможность перехода на MSSQL)

Ответы [ 3 ]

2 голосов
/ 11 февраля 2009

Да, это работает, у меня есть пример кода здесь SQL Server 2008 Proximity Search с типом данных Geography

1 голос
/ 07 июля 2009

Да. Они реализованы правильно. У вас также есть PostgreSQL PostGIS в качестве опции Oracle Spatial . Informix и DB2 также имеют реализации пространственного типа.

0 голосов
/ 19 февраля 2009

Да, они работают.

Я только что переключил один из моих классов с запроса на основе ESRI-ArcObject с помощью ISpatialFilter на SqlCommand, который возвращает те же данные. Это поиск по близости (вернуть любые записи, которые находятся в пределах 1000 футов от точки x).

Сначала запрос ESRI был еще быстрее, но это было из-за плохо сконструированного предложения where, которое было очень неэффективным (я все еще учусь, как использовать пространственные функции в SQLSVR2008).

После некоторой настройки мой метод SQL был быстрее, чем метод ESRI, но ненамного. Затем я увеличил дальность поиска до 10000 футов и увидел разницу. Метод SQL Server 2008 был намного быстрее.

(ESRI) Время поиска ближайших клиентов (сек): 1.503 (SQL2008) Истекшее время запроса ближайших клиентов (сек): 0,925

Хотя различия в скорости связаны не с индексами, а с ESRI-ArcObjects. В моем методе ESRI я получаю свое расстояние, x и y от IProximityOperator и IPoint. В методе SQL2008 я позволяю базе данных выполнять всю работу: SHAPE.STX как X, SHAPE.STY как Y, SHAPE.STDistance (но разработчики ArcObject знают все об этих издержках).

Пока что я впечатлен.

...