Re: Do you ever really get row level locking?

From: Guy Harrison <gharriso_at_werple.net.au>
Date: 1996/06/13
Message-ID: <01bb58af.32bba520$762811cb_at_gharriso>#1/1


I think there are some fairly obscure conditions under which ORACLE will effectively lock an entire block.

Firstly, if a an update extends a row such that a chained block is required (for instance if PCTFREE is too low), other sessions will be unable to update rows in that block until the first process commits or deletes.

Secondly, I'm pretty sure that a similar thing happens when ORACLE splits the leaf block of an index. Until the process commits, other processes will not be able to process transactions which would change the index keys in the original (unsplit) block.

I've been able to replicate the first situation in a test case, but have only seen indications of the second. Anyone had any similar experiences?

Guy Harrison
gharriso_at_werple.net.au

>> 
> ><snip>

> >> No, this is wrong in the Oracle case as well. Oracle locks indexes
 at
> >> the lowest level. An index lock will lock a row, not all the entries
> >> on that block. There is no "adjacent key locking" or page locking
> >> involved here.
> >>
> >> An update of a single record will lock but one record and one record
> >> only.
Received on Thu Jun 13 1996 - 00:00:00 CEST

Original text of this message