Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Not able to enable validate a constraint in parallel

User649389-OracleJul 22 2015 — edited Jul 22 2015

Hello,

I have a table with 500M rows. I am trying to enable validate a FK constraint with a parallel degree of 128. Seems like the optimizer is ignoring the DOP.

Header 1

  ALTER SESSION FORCE PARALLEL DDL PARALLEL 128;

  CREATE TABLE "SERVICECONFIGURATIONITEM"

   (    

    "NAME" VARCHAR2(255 BYTE),

    "VALUE" VARCHAR2(255 BYTE),

    "ENTITYID" NUMBER(19,0)

    CONSTRAINT "PK_SCVI" PRIMARY KEY ("ENTITYID")

    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

    ENABLE NOVALIDATE,

    CONSTRAINT "SRVICECONFIGURATIONITEMNTITYID" FOREIGN KEY ("ENTITYID")

    REFERENCES "BUSINESSINTERACTIONITEM" ("ENTITYID") DEFERRABLE INITIALLY DEFERRED ENABLE NOVALIDATE,

    )

  CREATE TABLE "BUSINESSINTERACTIONITEM"

   (    "ENTITYID" NUMBER(19,0) NOT NULL ENABLE,

     PRIMARY KEY ("ENTITYID")

   );   

   

CREATE TABLE SCVI_TEMP

    (   

    "NAME" VARCHAR2(255 BYTE),

    "VALUE" VARCHAR2(255 BYTE),

    "ENTITYID" NUMBER(19,0),

    )   

    nologging AS

    select * from SERVICECONFIGURATIONITEM;

   

ALTER TABLE SERVICECONFIGURATIONITEM RENAME TO SERVICECONFIGURATIONITEM_CII;

ALTER TABLE SCVI_TEMP RENAME TO SERVICECONFIGURATIONITEM;

   

alter table "SERVICECONFIGURATIONITEM_CII" drop constraint "PK_SCVI"; 

ALTER TABLE ServiceConfigurationItem_CII DROP CONSTRAINT SrviceConfigurationItemNTITYID ;   

ALTER TABLE ServiceConfigurationItem ADD CONSTRAINT SrviceConfigurationItemNTITYID FOREIGN KEY (ENTITYID) REFERENCES BusinessInteractionItem (ENTITYID) INITIALLY DEFERRED DEFERRABLE ENABLE NOVALIDATE  NOLOGGING;

CREATE UNIQUE INDEX IDX_PK_SCVI ON SERVICECONFIGURATIONITEM(ENTITYID) NOLOGGING;

ALTER TABLE SERVICECONFIGURATIONITEM ADD CONSTRAINT PK_SCVI PRIMARY KEY (ENTITYID) USING INDEX IDX_PK_SCVI NOVALIDATE;

ALTER TABLE SERVICECONFIGURATIONITEM ENABLE VALIDATE CONSTRAINT PK_SCVI;

ALTER TABLE ServiceConfigurationItem ENABLE VALIDATE CONSTRAINT SrviceConfigurationItemNTITYID;   

ALTER SESSION DISABLE PARALLEL DDL; 

Is there any reason for the optimizer to ignore the DOP even though I am forcing the session to set a DOP of 128? Please note that DOP is working for other operations like CTAS etc.

Also, is there a more efficient way of 'moving' contraints and indexes from the original table to the temp table created using CTAS?

Thanks in advance.

-Ravindra

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 19 2015
Added on Jul 22 2015
4 comments
495 views