我不断地查询这个表格,以获取所有符合特定点周围半径范围内记录的信息。例如,“所有在39.89288,-104.919434半径5英里范围内的记录”。
为此,我在纬度/经度列上建立了索引,并获取“边界正方形”中的点,然后在我的ASP.Net应用程序中丢弃所有落在圆外的点,因为这比在SQL Server中执行圆计算更快。
注意:这是有关美国的所有数据,因此我认为地球是平坦的,这对我的需求足够精确。
现在,纬度/经度索引的主要问题是它是“点的正方形”,而且由于我正在查找“x和y之间的纬度和“x和y之间的经度”,所以它不能像在“一行”点上搜索那样高效使用索引。
我一直在研究SQL 2008的空间特性,但我没有找到足够具体的信息,以知道这是否对我有用。
因此,问题是:SQL 2008是否有一种不同类型的索引,可以使我针对这种特定类型的查询比使用SQL 2005更快?