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