oracle lock 01 - summary of lock

来源:互联网 发布:矩阵的镜像变换 编辑:程序博客网 时间:2024/04/28 02:20

Summary of Locking Behavior

A lock is a mechanism that prevents destructive interactions, which are interactions that incorrectly update data or incorrectly alter underlying data structures, between transactions accessing shared data. Locks play a crucial role in maintaining database concurrency and consistency.

The database maintains several different types of locks, depending on the operation that acquired the lock. In general, the database uses two types of locks:exclusive locks and share locks. Only one exclusive lock can be obtained on a resource such as a row or a table, but many share locks can be obtained on a single resource.

Locks affect the interaction of readers and writers. A reader is a query of a resource, whereas awriter is a statement modifying a resource. The following rules summarize the locking behavior of Oracle Database for readers and writers:

1、A row is locked only when modified by a writer.

When a statement updates one row, the transaction acquires a lock for this row only. By locking table data at the row level, the database minimizes contention for the same data. Under normal circumstance(情况) , the database does not escalate(升级) a row lock to the block or table level.

2、A writer of a row blocks a concurrent writer of the same row.

If one transaction is modifying a row, then a row lock prevents a different transaction from modifying the same row simultaneously(同时).

3、A reader never blocks a writer.

Because a reader of a row does not lock it, a writer can modify this row. The only exception is aSELECT ... FOR UPDATE statement, which is a special type of SELECT statement thatdoes lock the row that it is reading.

4、A writer never blocks a reader.

When a row is being changed by a writer, the database uses undo data data to provide readers with a consistent view of the row.

0 0
原创粉丝点击