我们正在使用SQL Server 2008网络版。我们有一个名为“tbl_geodata”的表,它有地址和纬度和经度值。我们还有一个“历史”表,其中只包含纬度和经度值,包括其他信息。我们需要的是跟随......
我们根据“历史记录”(lat long values)中的查询得到一组记录,比如5000条记录
现在我们使用以下公式为每行(5000行)的“tbl_geodata”计算地址。
SELECT top 1 geo_street,geo_town,geo_country,( 3959 acos( cos( radians(History.lat) ) cos( radians( gps_latitude ) ) cos( radians( gps_longitude ) - radians(History.long) ) + sin( radians(History.lat) ) sin( radians( gps_latitude ) ) ) ) AS distance FROM tbl_geodata ORDER BY distance
目前我们看到了高CPU利用率和性能问题。任何人都可以建议改进步骤吗?
答案 0 :(得分:0)
您需要空间索引。请参阅CREATE SPATIAL INDEX
和Spatial Indexes overview。 SQL Server 2008中引入了空间索引,Web Edition应该允许它们。