Ch 07: Investigating Redo

REDO management serialization:

Larger REDO increases time

REDO is less for direct path insert than for conventional insert.

Cannot turn off REDO

SELECT forced_logging FROM v$database;

Significantly less REDO does not meam no REDO.

NOLOGGING operations are not recoverable.

NOLOGGING in SQL statements or in segment definitions.

Both of the following events hang the database:

  1. Checkpoint not complete
  2. Archival required

Other events:

Checkpointing

Parameters:

Block Clean Out

Block clean out of expired transaction locks will generate REDO

Cleanout on COMMIT is not completed if number of changed blocks is greater than 10% of DB cache.

In a warehouse where you make massive UPDATEs to the data after a load, block cleanouts may be a factor in your design.

DBMS_STATS after a large UPDATE will do a block cleanout.

Log File Waits

Most common causes of log file waits:

Temporary Table

18C+ private temp table

TEMP_UNDO_ENABLED

pre 12C, no REDO for GTT but UNDO is logged

12C- TEMP_UNDO_ENABLED=TRUE

Any DML against TEMP TABLE - little or no REDO

CREATE PRIVATE TEMPORARY TABLE t
    ...
    ON COMMIT PRESERVE DEFINITION;