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

Home -> Community -> Usenet -> c.d.o.server -> Re: how synchronous is Oracle?

Re: how synchronous is Oracle?

From: Andrew Allen <andrew.allen_at_sppaammkiller.handleman.com>
Date: Thu, 06 Mar 2003 20:18:59 GMT
Message-ID: <3E67A02E.4060205@sppaammkiller.handleman.com>


Uwe Kuechler wrote:
> "Robert A.M. van Lopik" <lopik_at_mail.telepac.pt> wrote in message news:<3e66fee5$0$10173$a729d347_at_news.telepac.pt>...
>

>>The question is: does Oracle guarantee that committed inserts are
>>"immediately" visible to other users, or is there a possibility, e.g. on a
>>heavily loaded system, that proces B will not retrieve the record, although
>>it will see it at a somewhat later time?

>
>
> Robert,
> you were asking for a simple answer: Yes, Oracle does guarantee that.
> It uses locking and marking (dirty blocks) mechanisms to ensure that.
> If in your scenario process A puts a lot of data to be committed into
> the database, then the affected rows or even the table itself gets
> locked until the commit has been completed. Process B has to wait for
> write completion if the server is unable to retrieve the desired data
> blocks from the cache.
>

Uwe,
You DO NOT know what you are talking about. 1. Oracle DOES NOT ever lock tables. Applications can lock tables for update but Oracle DOES NOT EVER escallate locks to the block or table level. So, no matter how much data txt a inserts, updates, or deletes, txn b will NOT wait for txn a to commit or rollback.

2. Oracle DOES NOT ever block reads. Oracle uses rollback/undo to construct a view of the data the way it was when your transaction started. So txn b will see the data as it was when it starts regardless of what txn a does. It has absolutely nothing to do with retrieving anything from cache.

--
AjA
Received on Thu Mar 06 2003 - 14:18:59 CST

Original text of this message

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