10. If Client B executed the SQL statement with the READ COMMITTED isolation
level, the SQL statement then proceeds through its normal operation.
The previous example illustrates the default behavior of Oracle when it detects a
problem caused by a potential lost update. Because the SERIALIZABLE isolation
level has a more drastic effect when it detects a write conflict than the READ COMMITTED
isolation level, many developers prefer the latter level. They can avoid
some of the potential conflicts by either checking for changes prior to issuing an
update (by comparing values in a row or using the Oracle Database 10g or later row
SCN) or using the SELECT FOR UPDATE syntax in their SQL to avoid the problem
altogether.
196 | Chapter 8: Oracle Multiuser Concurrency
A Read Operation
Youcan really appreciate the beauty of Oracle??™s read consistency model by looking
at the more common scenario of one user reading data and one user writing to the
same row of data. In this scenario, Client A is reading a series of rows from the EMP
table, while Client B modifies a row before it is read by Client A, but after Client A
begins her transaction:
1.
Pages:
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437