Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Causes of CF (Control file) Enqueues on Index Creation?

RE: Causes of CF (Control file) Enqueues on Index Creation?

From: David Aldridge <>
Date: Fri, 14 Sep 2007 19:03:00 -0700 (PDT)
Message-ID: <>

There's a fresh complication on this -- there are actually eight simultaneous processes inseeting into the table, so changing to a direct path insert causes a big table locking problem. I thought I could alleviate that with a parallel direct path load (ie. load to new extents instead of above the HWM) but that didn't get rid of the locking for some reason -- maybe there is a lock held by the query coordinator in each case that causes the contention.    

  So here're my other desperate stabs at quick workarounds -- an upgrade to 10g and/or moving each partition into it's own TS. My feeling is that either of these would help reduce the pq slaves fighting over locks, the former because of a achange in the checkpointing mechanism with 10g fromTS-based checkpoints to segment-based checkpoints, and the latter because it would pretty much mean the same thing.    

  All thoughts appreciated.

David Aldridge <> wrote:   If the load were modified to be direct path, and I've no idea why it isn't already to be honest, then my intuition tells me that would remove the possibility of delayed block cleanout occuring ... does that sound correct? I can't think why the blocks would need to be cleaned following direct path insert.

"Koppelaars, Toon" <> wrote:         v\:* {behavior:url(#default#VML);}  o\:* {behavior:url(#default#VML);}  w\:* {behavior:url(#default#VML);}  .shape {behavior:url(#default#VML);}                If delayed block cleanout causes writes to the controlfile, then this might be your problem.

  When the index is created then the blocks are reread from disk and at that moment are cleaned out and all the parallel slaves are fighting for the CF enqueue.           


  From: [] On Behalf Of David Aldridge Sent: woensdag 12 september 2007 14:32
To: Oracle List
Subject: Causes of CF (Control file) Enqueues on Index Creation?    

    We recently noticed, through Quest Performance Analysis, that a particular index creation statement on a newly populated table occasionally suffers from enqueue waits that extend the creation time from a few minutes to over an hour.      

    We used statspack to investigate further and found that at the time of index creation we get a spike in CF enqueue waits.      

    I have read Anjo Kolk's whitepaper "Description of Oracle7 Wait Events and Enqueues" in which he identifies an imposing list of situations in which the CF enqueue is used.      

    The index is a locally partitioned single column uncompressed b-tree built in parallel degree 8 against a range partitioned heap table with 8 partitions. The table has just been loaded when this index is created and it's the first to be created post-load. Other subsequently-built indexes do not appear to have suffered from this problem. the index creation takes place in a new session that starts immediately after a previous session has populated the table, commited and gracefully exited. The issue occurs intermittently, not on every occasion that the table is loaded.      

    I don't have access to the statspack data we extracted at the moment ... I'll post it as soon as I do.      

    Does anyone have any quick thoughts about the relationship between creating an index and a control file lock? I'm really pushing the limits of my internals knowledge here -- OK, actually I have gone past it :(

Received on Fri Sep 14 2007 - 21:03:00 CDT

Original text of this message