views:

137

answers:

2

If you need to minimize concurrency as much as possible, which isolation level (repeatable read, serializable, read committed, read uncomitted) would work best?

A: 

Serializable gives the most isolation, thus least concurrency.

http://en.wikipedia.org/wiki/Isolation_(database_systems)

abababa22
A: 

I'm guessing you really want to maximize concurrency as much as possible here, to increase performance. Unfortunately, simply choosing an isolation mode won't do the trick. The real question about those isolation modes is, can you use them in your particular application?

That really depends on the intimate details of your application, and that's probably not something we can debug on Stack Overflow.

However, in general, assuming you don't get data corruption, from most concurrent to least, the isolation levels for Oracle are:

  1. read uncommitted
  2. read committed
  3. repeatable read
  4. serializable.

It's different for, say, PostgreSQL because it uses a different synchronization model (MVCC), where reading is free, but when you write you run the risk of rollback.

I suppose the real answer to this question is, ask and get leads to many days of study materials, or just hire someone to deal with your particular situation. While it's very technical, there are no hard and fast rules: you need to understand both the theory behind what's going on and the specific situation in order to make a useful recommendation.

Curt Sampson