1.181 UPDATERECORDFORMAT

Valid For

Extract for all databases. This parameter can only be used in a TRANLOG Extract. It cannot be used in an Extract pump or distribution service.

Description

Use the UPDATERECORDFORMAT parameter to cause Extract to combine the before and after images of an UPDATE operation into a single record in the trail. It is valid for Extract in classic and integrated capture modes; it is valid for a master Extract though is not valid for pump Extract.

Before images are generated when the GETUPDATEBEFORES, GETBEFORECOLS, and LOGALLSUPCOLS parameters are used. (In the case of an update to a primary key, unique index, or user-specified KEYCOLS key, the before and after images are stored in the same record by default. UPDATERECORDFORMAT does not apply in these cases.) The NOCOMPRESSUPDATES parameter is required for non-Oracle databases.

When two records are generated for an update to a single row, it incurs additional disk I/O and processing for both Extract and Replicat. If supplemental logging is enabled on all columns, the unmodified columns may be repeated in both the before and after records. The overall size of the trail is larger, as well. This overhead is reduced by using UPDATERECORDFORMAT.

When UPDATERECORDFORMAT is used, Extract writes the before and after images to a single record that contains all of the information needed to process an UPDATE operation. In addition to improving the read performance of downstream processes, this enables column mapping functions to access the before and after column values at the same point in time, rather than having to cache the before image column values while reading the after values.

UPDATERECORDFORMAT takes effect for all TABLE statements in the parameter file.

If you specify both UPDATERECORDFORMAT and FORMAT RELEASE 11.x or earlier, then Extract will abend.

Note:

Many-columned tables can cause the trail record to reach its maximum size when UPDATERECORDFORMAT is used. The rest of the record is continued in one or more additional, chained record fragments. This has a minor effect on processing performance.

Note:

INSERTALLRECORDS only works with UPDATERECORDFORMAT FULL. So if you are using INSERTALLRECORDS in Replicat, you must set UPDATERECORDFORMAT FULL in the Extract.

Default

UPDATERECORDFORMAT COMPACT

Syntax

UPDATERECORDFORMAT [FULL | COMPACT]
FULL

Generates one trail record that contains the before and after images of an UPDATE, where the before image includes all of the columns that are available in the transaction record for both the before and after images. When viewed in the Logdump utility, this record appears as GGSUnifiedUpdate.

COMPACT

Generates one trail record that contains the before and after images of an UPDATE, where the before image includes all of the columns that are available in the transaction record, but the after image is limited to the primary key columns and the columns that were modified in the UPDATE. UPDATERECORDFORMAT COMPACT is recommended for configurations that include an integrated Replicat. This is the default.

When either FULL or COMPACT are viewed in the Logdump utility, the record appears as GGSUnifiedUpdate. The record contains the following:

  • a header

  • the length of the before image

  • the before values of each column

  • the after values of the primary key, unique index, or KEYCOLS columns

  • the after values of the modified columns

  • internal token data

Example

UPDATERECORDFORMAT COMPACT