当从 ArcGIS 客户端或通过 ArcGIS Server Web 服务连接到企业级地理数据库时,您将与您或其他数据库用户已添加到地理数据库中的数据集进行交互。 为了追踪该数据和实施地理数据库行为,企业级地理数据库将使用系统表。
不得使用 ArcGIS 软件或 SDK 以外的任何其他软件更改系统表及其内容。 但是,您可以使用 SQL 来查看系统表的内容。
核心系统表
核心地理数据库系统表可以强制实施地理数据库行为、存储有关地理数据库的信息以及追踪存储在地理数据库中的用户数据。
当您查询包含企业级地理数据库的 SAP HANA 数据库时,您将在任一 sde 用户方案中看到以下核心系统表:
- GDB_ARCHIVES
- GDB_BRANCH_TABLES_MODIFIED
- GDB_BRANCHES
- GDB_COLUMN_REGISTRY
- GDB_DBTUNE
- GDB_CONFLICTS
- GDB_ITEMRELATIONSHIPS
- GDB_ITEMRELATIONSHIPTYPES
- GDB_ITEMS
- GDB_ITEMTYPES
- GDB_LAYER_LOCKS
- GDB_LAYERS
- GDB_LOCATORS(未使用)
- GDB_LOCKS
- GDB_METADATA(未使用)
- GDB_MULTIBRANCH_TABLES
- GDB_OBJECT_LOCKS
- GDB_PROCESS_INFORMATION
- GDB_RASTER_COLUMNS
- GDB_REPLICALOG(未使用)
- GDB_SERVER_CONFIG
- GDB_SPATIAL_REFERENCES
- GDB_TABLE_LOCKS
- GDB_TABLE_REGISTRY
- GDB_TABLES_LAST_EDIT_TIME
- GDB_TABLES_LAST_MODIFIED
- GDB_TABLES_MODIFIED
- GDB_VERSION
用于实现企业级地理数据库功能的表
某些地理数据库功能的信息仅存储在核心系统表中。 例如,以下功能的信息将存储在核心系统表中,且当您针对用户数据定义或启用此功能时,不会在数据库中创建其他表:
- 属性规则 - 存储在 GDB_ITEMS 系统表中。
- 分支版本 - 将表或要素类业务表注册为参与分支版本化时,系统将向其中添加六个字段以追踪编辑内容。
- 属性域 - 存储在 GDB_ITEMS 系统表中。 GDB_ITEMTYPES 系统表中的字段将对象标识为属性域。
- 关系类 - 存储在 GDB_ITEMS 和 GDB_ITEMRELATIONSHIPS 系统表中。
但是,以下部分中描述的地理数据库功能会在您启用或使用该功能时创建其他内部表。
地理数据库存档
可使用地理数据库存档追踪数据的历史事务时间。 事务时间表示在数据库中添加、删除或更新要素的时刻。
当启用地理数据库存档功能后,系统将创建一个存档类。存档类为业务表的副本,其中包含业务表中的所有字段,另外还包括三个新字段:GDB_FROM_DATE、GDB_TO_DATE 和 GDB_ARCHIVE_OID。在参与传统版本的表或要素类上启用存档功能时,系统还会向 GDB_SDE_ARCHIVES 系统表添加一条记录。该条记录中存储了为进行存档而被启用的表的注册 ID 及该表相关联的存档类表的注册 ID。
存档类表的名称与包含下划线并追加 H 的原始业务表名称相同。 例如,如果启用名为 buildings 的要素类的存档功能,则系统会创建一个存档类 buildings_H。 此存档类表将存储在与业务表相同的方案中。
密钥集表
ArcGIS 客户端可使用密钥集表来提高查询性能。 在以下情况下密钥集表将存储一组所选的行:ArcGIS 客户端执行使用整型、数值型、日期型或字符串型属性来连接表的地理数据库关系查询。 此类表可保存使用对象 ID 字段以外的属性的连接。
只有在执行以下任一操作时,地理数据库中才会出现密钥集表:
- 如果要素类涉及关系类,则从 ArcGIS Pro 中地图的要素类中选择 99 条以上的记录。
- 在 ArcGIS Pro 中,打开关系类中所涉及的要素类的属性表,并检索相关表。
SAP HANA 中的密钥集表作为本地临时表存储在创建密钥集表的用户的方案中。
日志文件表
ArcGIS 客户端使用日志文件表通过存储所选行的列表来提高查询性能。 日志文件表使用基于对象 ID 属性的连接。
SAP HANA 中的日志文件表基于每个会话在创建它的用户的方案中创建为本地临时表。