SQL Server GEOGRAPHY_GRID x& y范围

时间:2010-11-23 07:09:15

标签: sql-server indexing geospatial sqlgeography

我有一张表需要记录整个世界的地理点(长,纬度)。输入数据是传统的纵向和纬度(-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. x&的最小到最大范围是多少?是GEOGRAPHY_GRID?见#4。
  4. 参考上面的#3,我是否需要转换传统的纵向&纬度(-180,-90,180,90)数据到GEOGRAPHY_GRID使用的范围,以便正确使用网格?

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

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