Я пытаюсь разработать наиболее эффективный запрос, чтобы получить точки в радиусе от данной точки. Результаты не должны быть очень точными, поэтому я бы предпочел скорость точности.
Мы пробовали использовать предложение where для сравнения расстояния точек с использованием STDistance, как это (где @point и v.GeoPoint - это географические типы):
WHERE v.GeoPoint.STDistance(@point) <= @radius
Также один, использующий STIntersects, похожий на этот:
WHERE @point.STBuffer(@radius).STIntersects(v.GeoPoint) = 1
Является ли какой-либо из этих запросов предпочтительным или есть еще одна функция, которую я пропустил?