oracle的單例項併發控制:Lock(一)
在oracle的單例項中,有兩種併發控制機制:Lock和Latch。
Lock從兩方面理解,首先它代表的是一種控制機制;其次,在這個機制中有一個成員也叫做Lock。
從機制角度看,Lock框架包括3個元件:Resource Strunture(資源)、Lock Structure(鎖)和Enqueue(排隊機制)。Resource和Lock是資料結構,Enqueue是使用的演算法。
Converter和Waiter兩個都是等待佇列,二者的用法有細微區別。
這種控制機制需要Resource、Lock兩種資料結構,但會消耗記憶體空間。對應粗粒度或者數量有限的資源,使用這種機制還可以,但是對應資料記錄這種機制就不適用了,oracle使用的是行級鎖(Row-Level Lock).
會話一:
SQL> select *from a;
ID NAM
---------- ---
1 shi
2 x
---------- ---
1 shi
2 x
SQL> savepoint a;
儲存點已建立。
SQL> update a set name='d' where id=2;
已更新 1 行。
會話二:
會話二:
SQL> update a set name='d' where id=2;
處於等待中。。。。。。。。
處於等待中。。。。。。。。
會話一:
SQL> rollback to a;
回退已完成。
會話二依然處於等待中。。。。。。。。。。
檢視系統,可以看到會話二在等待會話一的TX鎖:
USERNAME EVENT SID BLOCKING_SESSION
EDU enq: TX - row lock contention 244 263
EDU SQL*Net message from client 257 [NULL]
EDU SQL*Net message from client 257 [NULL]
oracle內的鎖共有6中模式:
Null、Share、Exclusive、Sub-Shared、Sub-Exclusive、Shared-sub-exclusive
通過把物件按簡單物件、符合物件分類,並使用不同鎖,對效能有很大提升。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25323853/viewspace-694372/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 我是如何控制1000 個 Echarts 例項同時渲染 最大併發的Echarts
- Thread 併發執行例項thread
- oracle併發與多版本控制Oracle
- [Java併發]LockJava
- oracle之 單例項監聽修改埠Oracle單例
- 多執行緒併發鎖分類以及簡單例項執行緒單例
- oracle 11g 單例項資料庫的安裝Oracle單例資料庫
- Oracle 11g RAC到單例項OGG同步Oracle單例
- 淺析Java併發中的單例模式Java單例模式
- 4.1. Oracle例項Oracle
- Oracle Far Sync例項Oracle
- oracle rac 單個例項不能生成awr報告的問題Oracle
- Android 簡單瀏覽器例項-webview控制元件Android瀏覽器WebView控制元件
- 記錄一次Oracle 11.2.0.4 RAC異地恢復到單例項Oracle單例
- oracle資料庫與oracle例項Oracle資料庫
- oracle一個listener偵聽多個例項的配置Oracle
- ORACLE-LINUX環境字元介面單例項安裝OracleLinux字元單例
- Oracle 11G資料庫單例項安裝Oracle資料庫單例
- 【PSU】Oracle打PSU及解除安裝PSU(單例項)Oracle單例
- oracle例項啟動異常慢案例一Oracle
- 併發程式設計之:Lock程式設計
- Java併發程式設計:LockJava程式設計
- oracle 例項表查詢Oracle
- 併發控制
- python 單一程式例項 實現Python
- 併發Lock之ReentrantLock實現原理ReentrantLock
- 不使用synchronized和lock,如何實現一個執行緒安全的單例?synchronized執行緒單例
- oracle11g安裝 單例項 系統centos7Oracle單例CentOS
- ORA-29702複製RAC Oracle軟體啟動單例項Oracle單例
- Guava併發:使用Monitor控制併發Guava
- 【多執行緒與高併發3】常用鎖例項執行緒
- 從例項出發,瞭解單例模式和靜態塊單例模式
- goroutine併發控制Go
- mysql併發控制MySql
- PGSQL併發控制SQL
- PHP+jQuery開發簡單的翻牌抽獎例項PHPjQuery
- PostgreSQL 併發控制機制(3):基於時間戳的併發控制SQL時間戳
- 【Oracle】ASM例項安裝入門OracleASM
- oracle 10203啟動例項報警Oracle