地理数据库中的空间索引

ArcGIS AllSource 使用空间索引来提高要素类的空间查询性能。 识别要素、通过点选或框选来选择要素以及平移和缩放都需要 ArcGIS AllSource 使用空间索引来查找要素。

注:

当您在 ArcGIS AllSource 中打开属性表时,已建立索引的字段的名称将带有星号 (*)。

ArcGIS AllSource 的地理数据库中创建空要素类或导入数据以创建要素类时,将为要素类创建空间索引。 空间索引用于查询和编辑数据。

注:

一种例外情况是 Db2。 在 Db2 的地理数据库中创建空要素类时,不会创建空间索引。

空间索引类型

数据源不同,空间索引也不同。 以下空间索引类型列表包含在其要素类上使用此索引的地理数据库数据源:

  • 基于格网的空间索引
    • 文件地理数据库
    • Db2 中的地理数据库
    • Oracle 中的地理数据库(如果要素类包含 Esri ST_Geometry 列)
  • R 树空间索引
    • 移动地理数据库
    • Oracle 中的地理数据库包含具有 Oracle 空间 (SDO_Geometry) 数据类型的要素类
  • 通用搜索树 (GiST) 索引
    • PostgreSQL 中的地理数据库
  • 经过修改的 B 树空间索引
    • Microsoft SQL Server 中的地理数据库包含使用 Geometry 或 Geography 空间列的要素类。 几何空间列中的空间索引还存储边界框坐标。 有关边界框的信息,请参阅 Microsoft SQL Server 文档。

ArcGIS 中的空间索引管理

ArcGIS AllSource 创建或重建空间索引的方式取决于地理数据库的类型,对于企业级地理数据库而言,则取决于所使用的数据库管理系统。 接下来的两节将解释这些功能差异。

文件地理数据库中的空间索引

以下将介绍文件地理数据库中的空间索引:

  • 在创建要素类时,ArcGIS AllSource 会创建空间索引。
  • 如果将要素类从地理数据库中复制到文件地理数据库中,且源要素类使用基于网格的索引,则会将空间索引与源数据一起复制。 如果源数据使用任何其他索引类型,则会在目标文件地理数据库中重建空间索引。
  • 压缩文件地理数据库要素类使用的空间索引类型与未压缩要素类中使用的空间索引类型不同。 在压缩文件地理数据库要素类时,系统会自动重新构建索引。 此索引无法修改。 解压缩要素类时,将自动重新建立与压缩前要素类所具有的相同的空间索引。

移动地理数据库中的空间索引

以下将介绍移动地理数据库中的空间索引:

  • 在创建要素类时,ArcGIS AllSource 会创建空间索引。
  • 在您将要素编辑内容保存在没有空间索引的要素类中时,不会创建空间索引。
  • 如果将要素类从地理数据库中复制到移动地理数据库中,则 ArcGIS AllSource 会根据被复制的要素在移动地理数据库中对要素类创建空间索引。

企业级地理数据库中的空间索引

以下列表介绍了 ArcGIS AllSource 如何在每个受支持的数据库管理系统中管理地理数据库内要素类的空间索引:

  • Db2
    • 在创建要素类时,ArcGIS AllSource 不会创建空间索引。
    • 在您将要素编辑内容保存在没有空间索引的要素类中时,才会创建空间索引。
    • 如果将要素类从地理数据库中复制到 Db2 内的地理数据库中,且源要素类使用基于网格的索引,则会将空间索引与源数据一起复制。 如果源数据使用任何其他索引类型,则 ArcGIS AllSource 会根据被复制的要素在 Db2 内的目标地理数据库中创建空间索引。
  • Oracle
    • 在创建要素类时,ArcGIS AllSource 会创建空间索引。
    • 在您将要素编辑内容保存在没有空间索引的要素类中时,才会创建空间索引。
    • 如果将要素类从地理数据库中复制到 Oracle 内的地理数据库中,且要素类使用 Esri ST_Geometry 类型,源要素类使用基于网格的索引,则会将空间索引与源数据一起复制。 如果源数据使用任何其他索引类型,则 ArcGIS AllSource 会根据被复制的要素在 Oracle 内的目标地理数据库中创建空间索引。
  • PostgreSQL
    • 在创建要素类时,ArcGIS AllSource 会创建空间索引。
    • 在您将要素编辑内容保存在没有空间索引的要素类中时,才会创建空间索引。
    • 如果将要素类从地理数据库中复制到 PostgreSQL 内的地理数据库中,则 ArcGIS AllSource 会根据被复制的要素在 PostgreSQL 中对要素类创建空间索引。
  • SQL Server
    • 在创建要素类时,ArcGIS AllSource 会创建空间索引。
    • 在您将要素编辑内容保存在没有空间索引的要素类中时,不会创建空间索引。
    • 如果将要素类从地理数据库中复制到 SQL Server 内的地理数据库中,则 ArcGIS AllSource 会根据被复制的要素在 SQL Server 中对要素类创建空间索引。
  • SAP HANA 不使用空间索引来实现查询性能;因此,ArcGIS AllSource 不会创建或维护空间索引。

何时更新空间索引

对于 SQL Server 中使用几何空间类型的要素类,空间索引将使用在插入和删除要素时必须手动更新的边界框。 要确定在 SQL Server 中何时需要重新计算要素类的空间索引,请使用要素类属性对话框中的验证操作

对于所有其他地理数据库和空间类型,您很少需要管理空间索引。 但是,如果您在添加或删除大量要素后,发现空间查询性能下降,那么对受影响的要素类上重建 (Oracle) 或重新创建空间索引,可能会提高空间查询性能。