查詢01_DML鎖和DDL鎖的處理

1、摘要
數據庫


Oracle的手冊上關於鎖的分類說明以下:
oracle

 

1. DML鎖:Date lock。執行DML時保護數據的鎖。Row LockTX)保護特定行,Table LockTM)保護整個表,能夠經過dba_kml_locks觀察。spa

2. DDL鎖:Data dictionary lock。保護User/Table/View/Procedure等定義,能夠經過dba_ddl_locks觀察。 3d

 

實際上,DML鎖和DDL鎖只是爲了合理分配鎖而賦予的名稱,請注意這點。
orm

 

DML鎖實際上與TM鎖一致,DML鎖能夠經過dba_dml_locks視圖觀察,這個視圖的做用是從V$lock視圖上篩選出鎖類型爲TM的。blog

數據庫上容許的TM鎖數量,能夠利用DML_LOCKS參數指定。若將DML_LOCKS參數設置爲0,則對錶沒法得到TM鎖。資源

這時,oracle爲了保障表定義被保護,對於表根本上不容許DDL操做。rem

此,即使不得到TM鎖,也容許修改該表的特定行。get

OPS環境下,爲了減小在全局範圍內得到TM鎖過程當中發生的附加資源消耗,有時也將DML_LOCKS值修改成0 it

 

DDL鎖實際上與library cache lock 一致。

DDL鎖能夠經過DBA_DDL_LOCKS視圖觀察,這個視圖世界上起到加工X$KGLLK視圖後顯示的做用。

DDL鎖除了DBA_DDL_LOCKS視圖以外,還能夠經過X$KGLLKDBA_KGLLOCK等視圖觀察。


對於表,普通DML語句以Sub-ExclusiveSX)模式得到TM鎖。Sub-exclusive模式之間存在共享性,因此多個會話能夠對形同的表執行DML

已執行DML的會話對於表,以Sub-Exclusive莫侯斯得到TM鎖,對於已修改的數據Exclusive模式得到TX鎖。

 

2、監控DDL和DML鎖


1. DBA_DML_LOCKS視圖在v$locks視圖上只選出TM鎖並加工獲得的;


2. DBA_DDL_LOCKS視圖是加工X$KGLLK視圖獲得的;


Thanks and Regards

2016-03-25 Created By BaoXinjian




 


 


 







相關文章
相關標籤/搜索