Monday, November 24, 2014

Summary - Control on Parallel operation and Nologging in INSERT .. SELECT ..


Summary of Parallel operation in INSERT .. SELECT ..

1. PDML Mode and Insert Hint

<PDML statement>
alter session enable parallel dml;
--alter session disable parallel dml;
INSERT /*+ append parallel */ INTO TG_TB SELECT .. FROM SRC_TB;

PDML modehint on Inserteffect on Inserteffect on Select
OFFnoneconventionalserial
OFFAPPENDserial direct-pathserial
OFFPARALLELconventionalparallel
OFFAPPEND PARALLELserial direct-pathparallel
ONnoneconventionalserial
ONAPPENDserial direct-pathserial
ONPARALLELparallel direct-pathparallel
ONAPPEND PARALLELparallel direct-pathparallel

If you add APPEND with PARALLEL hint in PDML session, then APPEND is ignored.
But in the session PDML disabled, the PARALLEL hint not work on the insert operation.

Note. 
Test DBMS : 12c Enterprise Edition Release 12.1.0.1.0


2. NOLOGGING setting

NOLOGGING can be set only with ALTER TABLE statement. If you add 'NOLOGGING' as a option in INSERT statement like below, it is considered as a table alias - nologging not works.

       INSERT /*+APPEND */ INTO TG_TB NOLOGGING
       SELECT ...

<Setting NOLOGGING on a Table>
ALTER TABLE TG_TB NOLOGGING;
ALTER TABLE TG_TB LOGGING;


Insert ModeDB Mode테이블 Logging OptionEffect
Direct-pathNOARCHIVELOGGINGminimum redo
NOARCHIVENOLOGGINGminimum redo
ARCHIVELOGGINGsmall redo
ARCHIVENOLOGGINGminimum redo
Conventionalall caseall casefull redo



No comments:

Post a Comment