Reports web Page

 

About Oracle


  Home

  About ME

  Summaries

  Key Definitions

  Links

  My Report

 

Multi-Versioning

This topic forms the foundation for Oracle's concurrency control mechanism. Oracle operates a multi-version read-consistent concurrency model.Multi version means here that multiple versions of the same data is stored ie: When you are operating on data data may change Chaneged version and new version is hold but not mixed and true result is gained.

To be more open:

When we delete table, we can retrieve this data by using cursor(if we opened it before) This doesn't imply that we store all the informations inside the cursor. Cursor is using rollback segments which store the datas previous form.Rollback segments preserve the modified data even commit command has pressed.

I will tell the famous example in the book.

Row Account Number Account Balance
1 123 $500.00
2 234 $250.00
3 345 $400.00
4 456 $100.00

We need to sum this numbers and for sure the answer is 1250$ but What happens if while we are reading
400$ (acaunt of 345) the transaction occurs and customer 123 put 400 $ to the customer 4?

Than the answer will be 1650 $ which is wrong. But Even such transaction occurs Oracle returns the right answer. Since Oracle only looks whether data is modified or not. if data is changed than it takes the data from the rollback segment and proceed onto the next block of data.

Figure shown tells it clearly:


There are multible versions of the same piece of information , all at different points at time, available in database. Oracle take 'snapshots' of data at different points in time and use them. Other database system lock the data and do no allow transaction at this instant which cause performance decrease.