Самый эффективный способ получения точек в радиусе от точки с помощью sql server Space

Я пытаюсь разработать наиболее эффективный запрос, чтобы получить точки в радиусе от данной точки. Результаты не должны быть очень точными, поэтому я бы предпочел скорость точности.

Мы пробовали использовать предложение where для сравнения расстояния точек с использованием STDistance, как это (где @point и v.GeoPoint - это географические типы):

WHERE v.GeoPoint.STDistance(@point) <= @radius

Также один, использующий STIntersects, похожий на этот:

WHERE @point.STBuffer(@radius).STIntersects(v.GeoPoint) = 1

Является ли какой-либо из этих запросов предпочтительным или есть еще одна функция, которую я пропустил?

6
задан Luke Lowrey 16 June 2011 в 12:13
поделиться