【发布时间】:2010-03-22 17:58:01
【问题描述】:
我的桌子上摆满了经销商以及他们的纬度和经度。我正在尝试确定最接近任何给定纬度和经度的前 n 个经销商。我已经有了计算位置之间距离的功能,但我想尽可能少地进行计算(我的表可以包含数千个条目)。目前我必须计算每个条目的距离然后对它们进行排序。有什么方法可以在我进行计算之前进行排序以提高性能?
This 的问题很好,但是我并不总是知道我的范围。我应该选择一个任意高的范围然后改进我的结果吗?我感谢社区可以提供的任何帮助。
declare @Lat real
declare @lon real
Set @lat = 41.05
Set @lon = -73.53
SELECT top 10
MemberID,
Address1,
City,
State,
Zip,
Phone,
Lat,
Lon,
(SELECT fun_DistanceLatLon] (@Lat,@lon,Lat,Lon)) as mDistance --Calculate distance
FROM
Dealers
Order by
(SELECT fun_DistanceLatLon] (@Lat,@lon,Lat,Lon))
【问题讨论】:
标签: sql-server tsql geolocation