特定のポイントの半径内のポイントを取得するための最も効率的なクエリを作成しようとしています。結果はそれほど正確である必要はないので、正確さよりも速度を優先します。
次のように、STDistance を使用してポイントの距離を比較する where 句を使用してみました (ここで、@point と v.GeoPoint は地理タイプです)。
WHERE v.GeoPoint.STDistance(@point) <= @radius
また、これに似た STIntersects を使用するもの:
WHERE @point.STBuffer(@radius).STIntersects(v.GeoPoint) = 1
これらのクエリのいずれかが優先されますか、それとも見逃した別の機能がありますか?