Locks in data blocks
A database must have a way of determining if a particular row is locked. Most
databases keep a list of locks in memory, which are managed by a lock manager
process. Oracle keeps locks with an area of the actual block in which the row is
stored. A data block is the smallest amount of data that can be read from disk for
an Oracle database, so whenever the row is requested, the block is read, and the
lock is available within the block. Although the lock indicators are kept within a
block, each lock affects only an individual row within the block.
In addition to the above features, which directly pertain to multiversion read
consistency, another implementation feature in Oracle provides a greater level of
concurrency in large user populations:
Nonescalating row locks
To reduce the overhead of the lock-management process, other databases will
sometimes escalate locks to a higher level of granularity within the database. For
example, if a certain percentage of rows in a table are locked, the database will
escalate the lock to a table lock, which locks all the rows in a table, including
rows that aren??™t specifically used by the SQL statement in question.
Pages:
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431