我有以下查询来获取给定位置的最近点。
CREATE PROCEDURE dbo.proc_getClosestPoint
(
@my_lat Decimal(11,8),
@my_lng Decimal(11,8)
)
AS
DECLARE @my_position geography;
SET @meu_position = geography::Point(@my_lng, @my_lat , 4326);
SELECT TOP 1
idLocalGeo,
@my_location.STDistance(point)/1000
FROM tLocalGeo
ORDER BY @my_location.STDistance(point)
我需要更有效的查询,例如,这样,它必须评估每个点的距离,只返回一个,我该怎么做才能更快地执行这个过程?
你可以给我一些提示吗?有什么条件我应该知道吗?谢谢!
注意:这是我的SQL Server表
CREATE TABLE tLocalGeo
(
id identity(1,1) primary key not null,
point geography not null
)