【发布时间】:2016-08-02 11:04:31
【问题描述】:
是否有任何可能的方法来改进以下查询:
DECLARE @radiusInMeters FLOAT = 400;
DECLARE @dgeog geography = geography::Point(given_latitude, given_longitude, 4326).STBuffer(@radiusInMeters);
select [fdx].latitude, [fdx].longitude
from [dbo].[fdx]
where @dgeog.STIntersects(geography::STGeomFromText('POINT(' + convert(varchar(20), [fdx].longitude) + ' ' + convert(varchar(20), [fdx].latitude) + ')', 4326)
) = 1
【问题讨论】:
-
以什么方式提高?
-
您的查询不使用任何空间索引,并且您的表没有几何列。所以查询运行时间太长了。
-
我的问题有点误导。对此感到抱歉。我的表确实有一个地理列和一个空间索引。但是空间索引没有出现在执行计划中。也许它与地理字段的创建方式有关
标签: sql sql-server spatial geography