假设我们有一个生日小丑数据库,其中包含一个地理列,其中包含每个小丑所在Point的二进制表示(根据小丑家庭地址的经度和纬度生成)。在地理栏上有一个地理索引。
一家大型国际软件公司的首席执行官向我们发送了他们在美国的所有员工的CSV文件,以及他们的街道地址,包括纬度和经度;我们必须为每个员工生成一份报告,说明15英里范围内有多少生日小丑。
我们的where条件可能如下所示:
where
(ClownLocationInBinary).STDistance( geography::Point(EES.lat, EES.lng, 4326) ) < radius或者像这样:
where
geography::Point(EES.lat, EES.lng, 4326).STDistance(ClownLocationInBinary) < radius两个where子句都会利用我们在BirthdayClowns表上创建的索引吗?或者其中一个人使用它,而另一个人不使用?如果是,哪一个是哪一个?
发布于 2013-06-18 19:56:09
当我昨天询问时,我不在安装了SQL Server的计算机上,无法检查查询计划,也无法通过搜索找到信息。但是后来我有机会检查了查询计划,where子句的两个版本都使用了索引。
https://stackoverflow.com/questions/17155658
复制相似问题