gpt4 book ai didi

sql - 最近邻搜索查询性能

转载 作者:行者123 更新时间:2023-12-04 20:19:15 26 4
gpt4 key购买 nike

我正在使用 Microsoft SQL Server 2012,我有一个简单的查询,它选择最接近特定点的前 50 个用户,例如:

DECLARE @Location geography = geography::Point(30.9384016, 29.9582148, 4326)

SELECT TOP 50 *
FROM Users
ORDER BY LastLocation.STDistance(@Location)

查看执行计划,我可以看到它没有使用我的空间索引

enter image description here

该表包含大约 40,000 条记录,查询执行时间超过 1 分钟,我的空间索引是这样创建的:
create spatial index IX_Location ON Users (LastLocation) using GEOGRAPHY_AUTO_GRID

我尝试在查询中使用提示并指定如下索引:
DECLARE @Location geography = geography::Point(30.9384016, 29.9582148, 4326)

SELECT TOP 50 *
FROM Users WITH (INDEX(IX_Location))
WHERE LastLocation.STDistance(@Location) IS NOT NULL
ORDER BY LastLocation.STDistance(@Location)

但实际上执行需要更多时间,有人可以告诉我如何提高此查询的性能吗?

谢谢

最佳答案

添加 WHERE限制距离的条款。

关于sql - 最近邻搜索查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18339108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com