SQL Server距离搜索

gon*_*nso 4 sql-server zipcode distance

我有一个带有Locations表的Microsoft SQL Server数据库.每个位置都有其地址和纬度和经度坐标.

在我的应用程序中,用户可以输入一个邮政编码,我们会返回一个靠近位置的列表.这是我的方法.a)使用zipcode DB我在lat,lon搜索邮政编码(这是中心点).b)我运行这样的搜索

SELECT Position_ID, distance(pos_lon,pos_lat,zip_lon,zip_lat) dist 
FROM Positions
ORDER BY dist
Run Code Online (Sandbox Code Playgroud)

"距离"是计算两点之间距离的函数.

问题是,随着我的位置数据库增加,运行这些搜索的时间开始增长.

有更好的方法吗?

Mar*_*ers 5

如果您使用的是SQL Server 2008,则可能需要查看geography列类型,STDistance函数和空间索引.