HELPLIB.HLB  —  RMU72  Load  Database  Command Qualifiers, Defer Index Updates
    Defer_Index_Updates
    Nodefer_Index_Updates

    The Defer_Index_Updates qualifier specifies that non-unique
    indexes (other than those that define the placement information
    for data in a storage area) will not be rebuilt until commit
    time.

    Use of this qualifier results in less I/O and fewer lock
    conflicts than when index builds are not deferred, but results
    in a total failure of a load operation if any lock conflicts
    are encountered. In such a case, the entire load operation is
    rolled back to the previous commit and you must repeat the load
    operation. (Record insertion recommences at the beginning of
    the input file). For this reason, you should only use the Defer_
    Index_Updates qualifier when all of the following are true:

    o  You specify the Noconstraints qualifier (or you have dropped
       constraints, or no constraints are defined on the table).

    o  You have dropped triggers from the table (or triggers are not
       defined for the table).

    o  No other users are accessing the table being loaded.

    Also be aware that required virtual memory can be quite large
    when you defer index updates. Required virtual memory is directly
    proportional to the following:

    o  The length of the Ikeys in the indexes being deferred

    o  The number of indexes being deferred

    o  The value for n specified with the Commit_Every qualifier

    You can estimate the amount of virtual memory required for each
    deferred index using the following formula, where:

    o  n = the value specified with the Commit_Every qualifier

    o  I = (length of the Ikey + 50)

    n * (I * number_defered_ikeys)

    The Nodefer_Index_Updates qualifier is the default. When you
    specify the Nodefer_Index_Updates qualifier (or accept the
    default), both the indexes that define the placement information
    for data in a storage area and any other indexes defined on the
    table being loaded are rebuilt at verb time.

    This can result in a managed deadlock situation when the Parallel
    qualifier is specified. The following describes such a scenario:

    o  Executor_1 locks index node A in exclusive mode

    o  Executor_2 locks index node B in exclusive mode

    o  Executor_1 requests a lock on index node B

    o  Executor_2 requests a lock on index node A

    In such a situation, Oracle Rdb resolves the deadlock by
    directing one of the executors to commit the data it has already
    stored. This resolves the deadlock situation and the load
    operation continues.
Close Help