Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Large set-based UPDATE
Sybrand Bakker wrote:
> f1fteen_at_hotmail.com (Paul) wrote in message news:<7b7286ec.0302120402.3a3818c8_at_posting.google.com>... >
> > > > As you are not issuing SELECT FOR updates, or issuing an explicit LOCK > TABLE in row share mode, your lock will automatically escalate to a > table level lock. > Setting up smaller transactions won't help, you need to have a LOCK > TABLE in row share mode prior to your EXECUTE IMMEDIATE > You may also want to review the execution path of the statement, > checking whether or not it has a full table scan on the table to be > updated. >
Please point to where in Oracle documentation we can find anything that
tells us that Oracle (in default operation) escalates locks to the table
level.
Oracle will only lock transactions that are attempting to update a row
which has already been updated but not yet committed. I suggest that
Mr. f1fteen_at_hotmail.com (Paul) has an application that is attempting to
update rows currently being updated or has some other concurrency issue.
I further suggest that committing in a cursor loop is a sure way to get a snapshot too old error.
-- regards, Andrew AllenReceived on Wed Feb 12 2003 - 11:37:22 CST