Databases Reference
In-Depth Information
3. Client B sends a SQL UPDATE statement for a row in the EMP table that has not
yet been read by Client A's SELECT statement. The server process gets an SCN for
the statement and begins the operation.
4. Client B commits his changes. The server process completes the operation, which
includes recording information in the data block that contains the modified row
that allows Oracle to determine the SCN for the update transaction.
5. The server process for Client A's read operation comes to the newly modified block.
It sees that the data block contains changes made by a transaction that has an SCN
that is later than the SCN of the SELECT statement. The server process looks in the
data block header, which has a pointer to the UNDO segment that contains the data
as it existed when Client A's transaction started. The UNDO segment uses the old
version of the data to create a version of the block as it existed when the SELECT
statement started. Client A's SELECT statement reads the desired rows from this
consistent version of the data block.
Figure 8-2 illustrates the process of reading with multiversion read consistency.
Figure 8-2. Multiversion read consistency
We explained how MVRC works with two users for the sake of clarity. But imagine a
database supporting one or more enterprise applications, with thousands of simulta‐
neous users. Oracle's concurrency handling could avoid an enormous amount of
 
Search WWH ::




Custom Search