How To: Successfully compress the geodatabase


Periodically compressing the geodatabase is a required maintenance procedure. Compress trims the state tree and moves rows, common to all versions, from the delta tables to the business table.

The delta tables hold all changes made to a versioned database. For each versioned feature class or object class there are 2 delta tables; the A table for inserts and updates and the D table for deletes.

Compressing the database removes all unreferenced database states and moves common rows from the delta tables into the "base" (business) table. The volume of edits (inserts, updates and deletes) for a table will affect the size of the database transaction.

The database uses a rollback segment to store copy of the data before it is changed in order to be able to roll back the transaction if something fails. If the changes can not be successfully stored in the rollback segment, then the transaction fails and is "rolled back" with an underlying database error and compress fails

To ensure the compress transaction completes (is able to be committed) it is recommended that the DBA create a separate large rollback segment for use with the compress command.

The ArcSDE dbtune table provides a parameter for defining the database rollback segment used during the compress operation. The parameter is named COMPRESS_ROLLBACK_SEGMENT and it contains the name of a rollback segment created for this purpose. The parameter is only recognized when it has been added to the DEFAULTS configuration keyword.

For more information on creating the rollback segment used for compressing the geodatabase, see The ArcSDE Configuration and Tuning Guide for Oracle, Chapter 2 ‘Essential Oracle configuring and tuning’.

The geodatabase can be compressed with either the ArcCatalog compress command or by using the ArcSDE sdeversion administration utility with the compress option.


Set the COMPRESS_ROLLBACK_SEGMENT parameter in the dbtune table. This first requires exporting the DBTUNE table to a file, adding the parameter using a text editor and finally importing the file back to the DBTUNE table.

Although you are free to edit the contents of the DBTUNE table using a SQL interface such as SQL*Plus, the sdedbtune administration tool has been provided to enable you to export the contents of the table to a file. The file can then be edited with a UNIX file-based editor, such as vi, or a Windows NT file-based editor such as notepad. After updating the file, you can repopulate the DBTUNE table using the import operation of the sdedbtune command.

In the following example, the DBTUNE table is exported to the dbtune.out file, and the file is edited with the UNIX "vi" file-based editor.

% sdedbtune -o export -f dbtune.out -u sde

ArcSDE 8.1 Wed Oct 4 22:32:44 PDT 2000
Attribute Administration Utility
Successfully exported to file SDEHOME\etc\dbtune.out

% vi dbtune.out

Next, add the parameter to the file under the DEFAULTS keyword.


% sdedbtune -o import -f dbtune.out -u sde

ArcSDE 8.1 Wed Oct 4 22:32:44 PDT 2000
Attribute Administration Utility
Successfully imported from file SDEHOME\etc\dbtune.out

The sdedbtune administration tool always exports the file in the etc directory of the ArcSDE home directory. You cannot relocate the file to another directory with a qualifying pathname. By not allowing the relocation of the file, the sdedbtune command ensures they remain under the ownership of the ArcSDE administrator.

Now the ArcSDE administrative user will be able to execute the compress command and know they will have sufficient rollback segment space to successfully compress the geodatabase.

    Related Information