Re: Oracle Isolation Levels

From: Jeremy Schneider <>
Date: Thu, 20 Feb 2014 10:38:18 -0600
Message-ID: <>

  1. The reason to use serializable in oracle would be that it's similar to read only but allows updates. It starts a transaction without any updates or locks. So you could start the transaction, run a bunch of queries, then do some updates later and have everything happen consistently.

2-3. In practice I haven't yet noticed anyone using isolation levels, so I suspect usage is rare. But then I usually work on the system side and don't see everything the apps are doing. I've often seen that developers overlook this or they consciously decide it's not important (non-repeatable/phantom reads are OK for their app). It's not so bad; really it's just saying that by default each SELECT is its own transaction.  Perfectly OK in many cases. Flashback can be used to similar effect with more granular control. For example, data pump exports can set a flashback time to ensure consistent results across the entire export (I think that by default the export is only consistent within tables).



On Thu, Feb 20, 2014 at 9:51 AM, fmh <> wrote:

> I have been doing some research on this topic & this is what I currently
> understand ...
> 1) Oracle allows 3 isolation levels, the default is READ_COMMITTED.
> 2) This default guarantees data consistency at both statement as well
> transaction level.
> 3) The default allows non-repeatable & phantom reads.
> My questions are ...
> 1) The SERIAZABLE isolation level is similar to READ_COMMITTED in that it
> gurantees cosnstency for the life of the transaction. If this is the
> case.why is it needed as a separate isolation level option?
> 2) If the default allows phantom & non-repeatable reads, is this OK?
> 3) Did you ever have to change Oracle isolation level? If yes, what was
> your real-life scenario?
> Thanks to all.
> --
> ----------------------------------------
> Thank you.
Received on Thu Feb 20 2014 - 17:38:18 CET

Original text of this message