Log file tables in a geodatabase in Informix

A geodatabase uses log file tables to store lists of table rows required by an ArcGIS client to improve query performance.

See Log file table configuration options for geodatabases in Informix for details on the geodatabase configuration needed for specific log file tables.

Log file tables in IBM Informix

When you first create your geodatabase in Informix, the default log file configuration uses shared 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.

Which log file tables you see in your geodatabase depends on which log file configuration your geodatabase uses.

Shared log files

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_sde_logfiles and <user_name>_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.

Shared log file tables in Informix

Session-based log file tables

If you alter your log file configuration to use session-based log files, you will see the sde_sde_logfiles, <user_name>_sde_logfile_data, and <user_name>_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 <user_name>_sde_logfile_data table is not populated. The sde_sde_logfiles and <user_name>_sde_logfile_data tables remain in the geodatabase, and the sde_sde_logfiles table is truncated when the connecting application disconnects. The <user_name>_sde_session<sde_id> table is truncated when the connecting application no longer needs the log file records, and the table is dropped when the session disconnects.

Session log file tables in Informix

Pools of log file tables

The sde_sde_logfile_pool table is created and stored in the schema of the geodatabase administrator when the geodatabase is created. If you use a pool of session-based log files owned by the geodatabase administrator, this table is used, plus sde_sde_logpool_<table_Id> tables are created in the geodatabase. The number of sde_sde_logpool_<table_Id> tables created depends on the number you specify using the Configure Geodatabase Log File Tables tool. In the example below, the number of session-based log file tables owned by the geodatabase administrator is set to 10; therefore, sde_sde_logpool_<table_Id> tables 1 through 10 are created.

All the tables created for pools of log files are created in the geodatabase administrator's schema.

A pool of log file tables in Informix

System tables for log files

The following are the definitions for the tables used for log files. Informix prefaces the table names with the name of the user in whose schema the table is stored.

sde_sde_logfile_pool

The sde_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 geodatabase 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_sde_logpool_<table_id>

The sde_sde_logpool_<table_Id> table can be checked out by users and stores session-based log files. The <TABLE_ID> is the sequence number. These tables are only present if you are using pools of log files owned by the geodatabase 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

<user_name>_sde_logfile_data

The <user_name>_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?

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.

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.

row_id

integer

Uniquely identifies a record and enables removal of duplicate <logfile_data_id,sde_row_id> values

<user_name>_sde_logfiles

The sde_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

session_tag

integer

A unique identifier for a connection's session, which allows a given connection to purge all temporary log files belonging to its session, for example.

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 or session 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.

<user_name>_sde_session<sde_id>

The <user_name>_sde_session<sde_id> table is created when you are using session-based log files. This table is used to track log file records. The <user_name>_sde_session<sde_id> table is dropped when the session that required the log file table 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