我有一个可以计算距离的查询,它可以按预期工作,但是查询大量数据点可能需要很长时间。
我尝试添加distribution = hash,但产生了一些影响,但影响不大。
CREATE TABLE #POI_PINGS_ALL
WITH
(
DISTRIBUTION=HASH([UUID])
)
AS
SELECT
l.[PoiId]
, v.[UUID]
, [CreatedOn]
, v.[Lat]
, v.[Lon]
FROM #LOCATION_PINGS_COUNCIL_DISTRIBUTED v
INNER JOIN #POI_LOOKUP l
ON l.[CouncilId] = v.[CouncilId]
INNER JOIN #POI p
ON p.[PoiId] = l.[PoiId]
WHERE
dbo.fn_GetDist(v.[Lat], v.[Lon], p.[Lat], p.[Lon]) <= p.[Radius]
有没有更有效的方式编写此查询?