SQL Server:如何更有效地进行查询?

时间:2013-12-19 03:44:11

标签: sql-server

我有以下查询来获取给定位置的最近点。

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
)

0 个答案:

没有答案