Re: breakable parse lock

  • From: Tanel Põder <tanel.poder.003@xxxxxxx>
  • To: <oracle-l@xxxxxxxxxxxxx>
  • Date: Wed, 7 Jul 2004 01:46:59 +0300

> I remember something (probably from Steve's book?) that such 'breakable'
> locks are held as long as required to enable invalidation of PL/SQL objects
> in the shared pool (Functions/Stored proc/Packages) when the dependent
> object changes. Is this correct?
Yes, in my understanding, the breakable parse locks for an object are held (in 
null mode) as long as there are SQL statements or PL/SQL objects in library 
cache.

From 10g docs:

Breakable Parse Locks
A SQL statement (or PL/SQL program unit) in the shared pool holds a parse lock 
for each schema object it references. Parse locks are acquired so that the 
associated shared SQL area can be invalidated if a referenced object is altered 
or dropped. A parse lock does not disallow any DDL operation and can be broken 
to allow conflicting DDL operations, hence the name breakable parse lock.

A parse lock is acquired during the parse phase of SQL statement execution and 
held as long as the shared SQL area for that statement remains in the shared 
pool.

Duration of DDL Locks
The duration of a DDL lock depends on its type. Exclusive and share DDL locks 
last for the duration of DDL statement execution and automatic commit. A parse 
lock persists as long as the associated SQL statement remains in the shared 
pool.

Tanel.





----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com
----------------------------------------------------------------
To unsubscribe send email to:  oracle-l-request@xxxxxxxxxxxxx
put 'unsubscribe' in the subject line.
--
Archives are at //www.freelists.org/archives/oracle-l/
FAQ is at //www.freelists.org/help/fom-serve/cache/1.html
-----------------------------------------------------------------

Other related posts: