When you connect to an enterprise geodatabase from an ArcGIS client or through an ArcGIS Server web service, you interact with the datasets that you or other databases users have added to the geodatabase. To track that data and to implement geodatabase behavior, enterprise geodatabases use system tables.
Do not alter the system tables and their contents using anything other than ArcGIS software or SDK. However, you can view the contents of the system tables using SQL.
Core system tables
Tables that implement enterprise geodatabase functionality
Information for some geodatabase functionality is stored in core system tables only. For example, information for the following functionality is stored in core system tables, and no additional tables are created in the database when you define or enable this functionality on user data:
- Attribute rules—Stored in the gdb_items system table.
- Branch versions—Six fields are added to the table or feature class business table when it is registered to participate in branch versioning to track edits.
- Domains—Stored in the gdb_items system table. A field in the gdb_itemtypes system table identifies the object as a domain.
- Geodatabase replicas—Tracked in the database in the gdb_items, gdb_itemrelationships, gdb_itemtypes, and gdb_replicalog system tables.
- Relationship classes—Stored in the gdb_items and gdb_itemrelationships system tables.
The geodatabase functionality described in the following sections, however, creates additional internal tables when you enable or make use of the functionality.
Geodatabase archives
You can track transaction time history for your data using geodatabase archiving. Transaction time represents the moment in time when the feature was added to, deleted from, or updated in the database.
The name of the archive class table is the same as the original business table name with an underscore and H appended to it. For example, if a feature class named buildings is enabled for archiving, an archive class, buildings_H, is created. This archive class table is stored in the same schema as the business table.
Keyset tables
Keyset tables are used by ArcGIS clients to improve query performance. Keyset tables store a list of selected rows when an ArcGIS client runs a geodatabase relationship query that joins tables using attributes that are type integer, number, date, or string. They accommodate joins using attributes other than the Object ID field.
No keyset tables are present in the geodatabase until you perform one of the following operations:
- Select more than 99 records from a feature class in a map in ArcGIS AllSource, and the feature class is involved in a relationship class.
- In ArcGIS AllSource, open the attribute table of a feature class that is involved in a relationship class and retrieve the related table.
One keyset table is created as a global temporary table per connection per session. Because it is a temporary table, the keyset table is deleted when the user disconnects from the geodatabase.
Log file tables
Log file tables are used by ArcGIS clients to improve query performance by storing lists of selected rows. Log file tables use joins based on Object ID attributes.