小编Ste*_*eve的帖子

性能调整大圆距离计算

我有一个查询,用于查找距离已知点 1 公里以内的位置。

为此,我使用了余弦球面定律公式和我的纬度和经度。

目前,该查询在大约 5 分钟内运行了大约 5000 条记录。这是可以接受的,但我想尽快完成。

我使用的主要查询:

select loc.*, base.key
from locations loc left outer join baseline base
on base.key in
(select key
from baseline
where [dbo].CIRCLEDISTANCE(loc.LAT, base.LATITUDE, loc.LONG, base.LONGITUDE) <= 1)
Run Code Online (Sandbox Code Playgroud)

圆距离标量值函数:

ALTER FUNCTION CIRCLEDISTANCE 
(
    -- Add the parameters for the function here
    @LAT1 varchar(250), 
    @LAT2 varchar(250),
    @LNG1 varchar(250), 
    @LNG2 varchar(250)
)
RETURNS float
AS
BEGIN

    DECLARE @Distance float
    DECLARE @LAT1_FLOAT float
    DECLARE @LNG1_FLOAT float
    DECLARE @LAT2_FLOAT float
    DECLARE @LNG2_FLOAT float

    select @LAT1_FLOAT …
Run Code Online (Sandbox Code Playgroud)

performance sql-server tuning functions

6
推荐指数
2
解决办法
2174
查看次数

标签 统计

functions ×1

performance ×1

sql-server ×1

tuning ×1