1

我有一张表需要记录全世界的地理点(经纬度)。输入数据是传统的纵向和纬度(-180、-90、180、90)。

我创建了一个地理列并希望对其进行索引。但是,有很多选项,MSDN 并未指明最佳实践。我有以下问题:

  1. 我假设 GRIDS = ( LEVEL_1 = HIGH, LEVEL_2 = HIGH, LEVEL_3 = HIGH, LEVEL_4 = HIGH) 最适合网格。这将在纬度 ≈ 611.5m 处创建最大可能的分辨率。我已经看到了其他选项的示例。什么是最好的?
  2. 由于我只记录点,我假设 CELLS_PER_OBJECT = 1 是正确的?
  3. GEOGRAPHY_GRID 的 x 和 y 的最小到最大范围是多少?见#4。
  4. 参考上面的#3,我是否需要将传统的纵向和纬度(-180、-90、180、90)数据转换为 GEOGRAPHY_GRID 使用的任何范围以便正确使用网格?
4

2 回答 2

2

1.) 和 2.) 要记住的重要一点是,相同的网格不仅用于细分创建索引的列中的数据,还用于您用于测试的任何查询参数该数据反对。考虑以下查询:

SELECT * FROM Table WHERE GeomColumn.STIntersects(@MyPoly) = 1

假设您已经在 GeomColumn 上创建了空间索引,那么相同的网格将应用于 @MyPoly 以便对结果执行初级过滤。因此,您不仅要根据表中的内容选择网格设置,还要根据该数据运行的查询样本类型。实际上,根据您的数据,什么是“最佳”是非常主观的。我总是建议你从 MEDIUM、MEDIUM、MEDIUM、MEDIUM 开始,然后尝试从那里调整它,看看你是否能根据经验测试获得更好的性能。

3.) 和 4.) 您没有为 geography 数据类型设置边界框 - 所有地理索引都被隐式假设为覆盖整个地球。这就是几何通常是比地理更快的数据类型的原因之一,因为几何索引的单元格可以在有限的地理区域内提供更高的分辨率。

于 2010-11-23T16:26:35.687 回答
0

我找到了 3、4 的答案:SRID 4326 是 (-180.0000, -90.0000, 180.0000, 90.0000)

于 2010-12-11T10:20:57.863 回答