Skip to content

Instantly share code, notes, and snippets.

@rponte
Last active January 7, 2022 19:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rponte/f441caf330264a24bea628005c6fb409 to your computer and use it in GitHub Desktop.
Save rponte/f441caf330264a24bea628005c6fb409 to your computer and use it in GitHub Desktop.
Oracle does NOT support dirty reads AT ALL by design (aka READ_UNCOMMITED Isolation level)

By design, Oracle does NOT support dirty reads AT ALL (aka READ_UNCOMMITED Isolation level)

Stackoverflow: Does oracle allow the uncommitted read option?

Tom provides a great answer to this: On Transaction Isolation Levels

The READ UNCOMMITTED isolation level allows dirty reads. Oracle Database doesn't use dirty reads, nor does it even allow them. The basic goal of a READ UNCOMMITTED isolation level is to provide a standards-based definition that allows for nonblocking reads.

...

Now, a database that allowed a dirty read ... not only does it return the wrong answer, but also it returns ... [an answer] ... that never existed in the table. In a multiuser database, a dirty read can be a dangerous feature. Personally, I've never seen the usefulness of it... The point here is that dirty read is not a feature; rather, it's a liability. In Oracle Database, it's just not needed. You get all of the advantages of a dirty read—no blocking—without any of the incorrect results.

@rponte
Copy link
Author

rponte commented Jan 7, 2022

But unfortunately, Oracle does NOT implement Serializability correctly, it implements Snapshot Isolation instead. PostgreSQL does!

Probably, this will never change! :-(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment