ArcSDE log file tables in a geodatabase in PostgreSQL
A geodatabase uses log file tables to store lists of table rows.
See ArcSDE log file table configuration options for PostgreSQL for more information.
Log file tables in ArcCatalog and ArcMap
You cannot see log file tables in ArcGIS Desktop. Rather, you cause log file tables to be created and populated when you make a selection in ArcMap that returns a set of more than 100 features.
Log file tables in a PostgreSQL database
When you first install ArcSDE and create your geodatabase in PostgreSQL, the default log file configuration uses shared ArcSDE log files. Shared log files are shared by all sessions that connect as the same user. So if you have multiple users connecting with the same user account, all those sessions will be inserting and deleting records from the same log file data table. The log files are created the first time a selection set of 100 or more records is created using ArcGIS.
Which log file tables you see in your geodatabase depends on which log file configuration is used.
Shared log file tables
If you use the default shared log files, two tables per DBMS user ID are created and stored in the schema of that DBMS user— sde_logfiles and sde_logfile_data. Once created, these tables remain in the geodatabase; however, all log file entries are deleted when the connecting application deletes all of its log files.
The dashed lines in this and subsequent diagrams denote implicit relationships between tables.
Session-based log file tables
If you alter your log file configuration to use session-based log files, you will see the sde_logfiles, sde_logfile_data, and sde_session<sde_id> tables in the geodatabase. These tables are created in the schema of the user whose session caused the tables to be created. Though created, the sde_logfile_data table is not populated. The sde_logfiles and sde_logfile_data tables remain in the geodatabase, and the sde_logfiles table is truncated when the connecting application disconnects. The sde_session<sde_id> table is truncated when the connecting application no longer needs the log file records (for ArcMap, this means there is no longer a selection set), and the table is dropped when the session disconnects.
Stand-alone log file tables
If you use stand-alone log files, for each selection set above the selection threshold made by a session, a new sde_logdata<sde_id>_<#> table is created for each layer. The sde_logfiles and sde_logfile_data tables are also created per session, but the sde_logfile_data table is not populated. Both of these tables are created in the schema of the user who caused them to be created.
The sde_logdata<sde_id>_<#> tables are truncated when the connecting session no longer needs the log files, and the tables are dropped when the session disconnects. The sde_logfiles table is truncated when the connecting application disconnects.
Pools of log file tables
The sde_logfile_pool table is created and stored in the schema of the ArcSDE administrator when the geodatabase is created. If you use a pool of stand-alone or session-based log files owned by the ArcSDE administrator, this table is used, plus sde_logpool_<table_Id> tables are created in the geodatabase. The number of sde_logpool_<table_Id> tables created depends on the number you specify for the LOGFILEPOOLSIZE in the sde_server_config table. In the example below, LOGFILEPOOLSIZE is set to 10; therefore, sde_logpool_<table_Id> tables 1 through 10 are created.
All the tables created for pools of log files are created in the ArcSDE administrator's schema.
If MAXSTANDALONELOGS is set to a number greater than 0, and a user that can create tables in the database creates a selection set that exceeds the threshold for log files to be created, a stand-alone log file table is created in that user's schema.
System tables for log files
The following are the definitions for the tables that are used for ArcSDE log files.
sde_logdata<sde_id>_<#>
The sde_logdata<sde_id>_<#> table contains the list of business table records that are part of a stand-alone log file. The name of the table contains the session ID and stand-alone log file sequence. This table is owned by the user who caused the table to be created.
Field name |
Field type |
Description |
Null? |
---|---|---|---|
sde_row_id |
integer |
The row id or shape id of the business table row being logged |
NOT NULL |
sde_logfile_data
The sde_logfile_data table contains the list of business table records that are part of each log file. It is owned by the user who caused the table to be created.
Field Name |
Field Type |
Description |
Null? |
---|---|---|---|
sde_row_id |
integer |
The row id or shape id of the business table row being logged; log files can log either row ids, shape ids, or user ids. |
NOT NULL |
row_id |
integer |
Uniquely identifies a record and enables removal of duplicate <logfile_data_id,sde_row_id> values |
|
logfile_data_id |
integer |
Identifies to which log file the row id belongs; New logfile_data_ids are assigned whenever a log file is truncated to avoid expensive delete operations. Deleted values in sde_logfile_data are also marked deleted by assigning a different logfile_data_id value. The logfile_data_id is a reference to the logfile metadata in sde_logfiles. |
NOT NULL |
sde_logfile_pool
The sde_logfile_pool table maintains the list of log files currently checked out. This table is created upon geodatabase creation and is owned by the ArcSDE administrator.
Field name |
Field type |
Description |
Null? |
---|---|---|---|
table_id |
integer |
Identifies the log file pool table |
NOT NULL |
sde_id |
integer |
Identifies which sde connection is currently using the given log file pool table The sde_id is a reference to the sde_id column of the process_information table. If sde_id is NULL, it means this log file pool table is not currently in use. |
sde_logfiles
The sde_logfiles table contains the log file metadata. It is owned by the user who caused it to be created.
Field name |
Field type |
Description |
Null? |
---|---|---|---|
logfile_name |
varchar(255) |
A unique user-defined (or application-defined) defined name for the log file |
NOT NULL |
logfile_id |
integer |
Uniquely identifies the log file |
NOT NULL |
logfile_data_id |
integer |
Identifies to which log file the row id belongs New logfile_data_ids are assigned whenever a log file is truncated to avoid expensive delete operations. |
NOT NULL |
registration_id |
integer |
The registration ID of the business table for which IDs are being logged in this log file |
NOT NULL |
flags |
integer |
A bitmask of values that indicate properties of the log file |
NOT NULL |
session_tag |
integer |
A unique identifier for a connection's session, which allows a given ArcSDE connection to purge all temporary log files belonging to its session, for example. |
NOT NULL |
logfile_data_db |
varchar(32) |
The name of the database in which the table that's holding the IDs for this log file is stored |
|
logfile_data_owner |
varchar(32) |
The name of the owner of the table that's holding the IDs for this log file |
|
logfile_data_table |
varchar(32) |
The name of the table that is holding the ids for this log file This could be the traditional sde_logfile_data, or a log pool table, a session table, or a stand-alone sde_logdata<sde_id>_<#> table. |
|
column_name |
varchar(32) |
The name of the column in the business table that is being logged Generally, this is the row id or shape id, but you can also specify an arbitrary integer column to be logged. |
sde_logpool_<table_ID>
The sde_logfile_pool table maintains the list of log files currently checked out. This table is created upon geodatabase creation and is owned by the ArcSDE administrator.
Field name |
Field type |
Description |
Null? |
---|---|---|---|
logfile_data_id |
integer |
Identifies to which log file the row id belongs New logfile_data_ids are assigned whenever a log file is truncated to avoid expensive delete operations. The logfile_data_id is a reference to the logfile metadata in sde_logfiles. |
NOT NULL |
sde_row_id |
integer |
The row id or shape id of the business table row being logged; log files can log either row ids or shape ids. |
NOT NULL |
sde_session<sde_id>
The sde_session<sde_id> table is created when you are using session-based log files. This table is used to track log file records when a connected session creates a selection set that exceeds the application threshold (100 records in ArcMap). The sde_session<sde_id> table is dropped when the session disconnects.
Field name |
Field type |
Description |
Null? |
---|---|---|---|
logfile_data_id |
integer |
Identifies to which log file the row id belongs New logfile_data_ids are assigned whenever a log file is truncated to avoid expensive delete operations. The logfile_data_id is a reference to the logfile metadata in sde_logfiles. |
NOT NULL |
sde_row_id |
integer |
The row id or shape id of the business table row being logged; log files can log either row ids or shape ids. |
NOT NULL |
Log file tables in an XML workspace document
Log file tables are not stored in XML documents. This means if you export your geodatabase schema to an XML workspace document, after you import the schema, log file tables will get re-created the next time users create a selection set that exceeds the log file threshold.