1

假设我们有一个生日小丑数据库,其中包含一个地理列,该列包含每个小丑所在的点的二进制表示(根据小丑家庭住址的纬度和经度生成)。地理列上有一个地理索引。

一家大型国际软件公司的 CEO 向我们发送了一份 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 表上创建的索引吗?或者他们中的一个使用它而不是另一个?如果是这样,哪个是哪个?

4

1 回答 1

0

昨天问的时候,我不在一台安装了SQL Server的机器上,无法查看查询计划,也无法通过搜索找到信息。但是从那以后我有机会检查查询计划,并且 where 子句的两个版本都使用索引。

于 2013-06-18T11:56:08.543 回答