SQL Server 中的地理数据库系统表

当从 ArcGIS 客户端或通过 ArcGIS Server Web 服务连接到企业级地理数据库时,您将与您或其他数据库用户已添加到地理数据库中的数据集进行交互。 为了追踪该数据和实施地理数据库行为,企业级地理数据库将使用系统表。

请勿使用 ArcGIS 软件或 SDK 以外的任何其他软件更改系统表及其内容。 但是,您可以使用 SQL 来查看系统表的内容。

核心系统表

用于实现企业级地理数据库功能的表

某些地理数据库功能的信息仅存储在核心系统表中。 例如,以下功能的信息将存储在核心系统表中,且当您针对用户数据定义或启用此功能时,不会在数据库中创建其他表:

  • 属性规则 - 存储在 gdb_items 系统表中。
  • 分支版本 - 将表或要素类业务表注册为参与分支版本化时,系统将向其中添加六个字段以追踪编辑内容。
  • 属性域 - 存储在 gdb_items 系统表中。 gdb_itemtypes 系统表中的字段将对象标识为属性域。
  • 地理数据库复本 - 在 gdb_itemsgdb_itemrelationshipsgdb_itemtypesgdb_replicalog 系统表的数据库中进行追踪。
  • 关系类 - 存储在 gdb_itemsgdb_itemrelationships 系统表中。

但是,以下部分中描述的地理数据库功能会在您启用或使用该功能时创建其他内部表。

地理数据库存档

可使用地理数据库存档追踪数据的历史事务时间。 事务时间表示在数据库中添加、删除或更新要素的时刻。

存档类表的名称与包含下划线并追加 H 的原始业务表名称相同。 例如,如果启用名为 buildings 的要素类的存档功能,则系统会创建一个存档类 buildings_H。 此存档类表将存储在与业务表相同的方案中。

密钥集表

ArcGIS 客户端可使用密钥集表来提高查询性能。 在以下情况下密钥集表将存储一组所选的行:ArcGIS 客户端运行使用整型、数值型、日期型或字符串型属性来连接表的地理数据库关系查询。 此类表可保存使用对象 ID 字段以外的属性的连接。

只有在执行以下任一操作时,地理数据库中才会出现密钥集表:

  • 如果要素类涉及关系类,则从 ArcGIS AllSource 中地图的要素类中选择 99 条以上的记录。
  • ArcGIS AllSource 中,打开关系类中所涉及的要素类的属性表,并检索相关表。

每个会话每个连接会创建一个密钥集表作为全局临时表。 因为该密钥集表是临时表,所以在用户与地理数据库断开连接时会被删除。

日志文件表

ArcGIS 客户端使用日志文件表通过存储所选行的列表来提高查询性能。 日志文件表使用基于对象 ID 属性的连接。