Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Cheap table lock?

Re: Cheap table lock?

From: Stephane Faroult <sfaroult_at_oriole.com>
Date: Sat, 28 Sep 2002 04:13:19 -0800
Message-ID: <F001.004DBE81.20020928041319@fatcity.com>


"Mark J. Bobak" wrote:
>
> Um, no. Select for update will lock whatever rows it selects. If it
> happens to select all the rows in a table, then all the rows in the
> table will be locked. But, you could select for update where
> primary_key=1 and select (and lock) just one row. As with other DML
> locks, the lock will be released when you commit or rollback.
>
> See the concepts manual for more details.
>
> Hope that helps,
>
> -Mark
>
> On Fri, 2002-09-27 at 20:33, tony ynot wrote:
> > Is Select ... For Update;
> > a cheap table lock?
> > It seems whenever code uses this statement
> > all the records in the cursor are locked
> > until the cursor is closed.
> >

IMHO SELECT .. FOR UPDATE is something which, in most cases where I see it used, is perfectly dispensable. It's a relic of Oracle 5 when there was no real row lock (only exclusive table locks and 'intent' row locks) and the difficulty was to hold them for as short a period as possible - hence SELECT ... FOR UPDATE to get the rowid, then a very fast UPDATE using the rowid and commit. Since Oracle6, unless you intend to 'reserve' a row, run a 3 hours process and be certain to find the same value when you're done, you can directly execute the update, it will spare you a select.

-- 
Regards,

Stephane Faroult
Oriole Software
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Stephane Faroult
  INET: sfaroult_at_oriole.com

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
Received on Sat Sep 28 2002 - 07:13:19 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US