Enqueue 鎖定機制
enqueue是一種保護共享資源的鎖定機制。該鎖定機制保護共享資源,如記錄中的資料,以避免兩個人在同一時間更新同一資料。enqueue包括一個排隊機制,即FIFO(先進先出)排隊機制。
Enqueue等待常見的有ST、HW 、TX 、TM等
ST enqueue 用於空間管理和字典管理的表空間(DMT)的區間分配,在DMT中典型的是對於uet$和fet$資料字典表的 爭用。對於支援LMT的版本,應該儘量使用本地管理表空間, 或者考慮手工預分配一定數量的區(Extent),減少動態擴充套件時發生的嚴重佇列競爭。
HW enqueue 指和段的高水位標記相關等待;手動分配適當區可以避免這一等待。
TX enqueue 是最常見的enqueue等待。TX enqueue等待通常是以下三個問題之一產生的結果。
第一個問題是唯一索引中的重複索引,你需要執行提交(commit)/回滾(rollback)操作來釋放enqueue。
第二個問題是對同一點陣圖索引段的多次更新。因為單個點陣圖段可能包含多個行地址(rowid),所以當多個使用者試圖更新同一段時,可能一個使用者會鎖定其他使用者請求的記錄,這時等待出現。直到獲得鎖定的使用者提交或回滾,enqueue釋放。
第三個問題,也是最可能發生的問題是多個使用者同時更新同一個塊。如果沒有足夠的ITL槽,就會發生塊級鎖定。透過增大initrans和/或maxtrans以允許使用多個ITL槽(對於頻繁併發進行DML操作的資料表,在建表之初就應該考慮為相應引數設定合理的數值,避免系統執行以後線上的更改,在8i之前,freelists等引數不能線上更改,設計時的考慮就尤為重要),或者增大表上的pctfree值,就可以很容易的避免這種情況。
TM enqueue 佇列鎖在進行DML操作前獲得,以阻止對正在操作的資料表進行任何DDL操作(在DML操作一個資料表時,其結構不能被更改)。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-682024/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP 鎖機制PHP
- SQLite鎖機制SQLite
- 【ASK_ORACLE】Row Cache Enqueue鎖之概念篇OracleENQ
- 分散式鎖機制分散式
- Mysql鎖機制分析MySql
- Mysql中的鎖機制——MyISAM表鎖MySql
- synchronized鎖機制 之 程式碼塊鎖synchronized
- Mysql各種鎖機制MySql
- 資料庫鎖機制資料庫
- mysql myisam的鎖機制MySql
- 鎖機制到加鎖的必要性
- MySQL效能優化(九)-- 鎖機制之行鎖MySql優化
- MySQL 資料庫鎖定機制?這篇文章為你分析清楚~MySql資料庫
- 【MySQL】MySQL中的鎖機制MySql
- MySQL InnoDB 中的鎖機制MySql
- CAS 無鎖式同步機制
- redis(10)事務和鎖機制Redis
- iOS——Objective C都有哪些鎖機制iOSObject
- 一文看懂Java鎖機制Java
- mysql 事務,鎖,隔離機制MySql
- mysql鎖機制 讀書筆記MySql筆記
- 執行緒鎖 -賣票機制執行緒
- MySql(三) MySql中的鎖機制MySql
- 再談mysql鎖機制及原理—鎖的詮釋MySql
- InnoDB儲存引擎鎖機制(二、 鎖的型別)儲存引擎型別
- 從自旋鎖、睡眠鎖、讀寫鎖到 Linux RCU 機制講解Linux
- oracle enqueue typeOracleENQ
- Oracle Enqueue WaitsOracleENQAI
- oracle enqueue(zt)OracleENQ
- InnoDB儲存引擎鎖機制(三、鎖的演算法)儲存引擎演算法
- [轉帖]SQL Server 鎖機制 悲觀鎖 樂觀鎖 實測解析SQLServer
- 圖解Janusgraph系列-併發安全:鎖機制(本地鎖+分散式鎖)分析圖解分散式
- Java 鎖機制瞭解一下Java
- SAP Fiori裡的兩種鎖機制
- Sql Server深入的探討鎖機制SQLServer
- mysql事務處理與鎖機制MySql
- 一小時搞懂Mysql鎖機制MySql
- JAVA多執行緒與鎖機制Java執行緒
- InnoDB儲存引擎鎖機制(一、案例)儲存引擎