v$lock 視圖說明

ADDR  
Address of lock state object 

KADDR  
Address of lock 

Lock Type  
System Type  
BL Buffer hash table instance 
CF Control file schema global enqueue 
CI Cross-instance function invocation instance 
CU Cursor bind 
DF Data file instance 
DL Direct loader parallel index create 
DM Mount/startup db primary/secondary instance 
DR Distributed recovery process 
DX Distributed transaction entry 
FS File set 
HW Space management operations on a specific segment 
IN Instance number 
IR Instance recovery serialization global enqueue 
IS Instance state 
IV Library cache invalidation instance 
JQ Job queue 
KK Thread kick 
LA .. LP Library cache lock instance lock (A..P = namespace) 
MM Mount definition global enqueue 
MR Media recovery 
NA..NZ Library cache pin instance (A..Z = namespace) 
PF Password File 
PI, PS Parallel operation 
PR Process startup 
QA..QZ Row cache instance (A..Z = cache) 
RT Redo thread global enqueue 
SC System change number instance 
SM SMON 
SN Sequence number instance 
SQ Sequence number enqueue 
SS Sort segment 
ST Space transaction enqueue 
SV Sequence number value 
TA Generic enqueue 
TS Temporary segment enqueue (ID2=0) 
TS New block allocation enqueue (ID2=1) 
TT Temporary table enqueue 
UN User name 
US Undo segment DDL 
WL Being-written redo log instance 

User Type  
TX --- Transaction 
TM --- Table Manipulate 
UL --- PL/SQL USER LOCK 

lmode(Lock mode)  
Lock mode in which the session holds the lock: 
0 - none 
1 - null (NULL) 
2 - row-S (SS) 
3 - row-X (SX) 
4 - share (S) 
5 - S/Row-X (SSX) 
6 - exclusive (X) 

request  
Lock mode in which the process requests the lock: 
0 - none 
1 - null (NULL) 
2 - row-S (SS) 
3 - row-X (SX) 
4 - share (S) 
5 - S/Row-X (SSX) 
6 - exclusive (X) 

Block  
0 --- Not blocking any other processes 
1 --- This lock blocks other processes 
2 --- Global
列名 類型 字段說明
ADDR RAW(4|8) Address of lock state object
KADDR RAW(4|8) Address of lock
SID NUMBER 會話的sid,能夠和v$session 關聯
TYPE VARCHAR2(2) 鎖保護對象的類型見上面
TM – DML enqueue
TX – Transaction enqueue
UL – User supplied
更多時候只須要關注TX和TM兩種類型的鎖
UL鎖用戶本身定義的,通常不多會定義,不多關注
其它均爲系統鎖,會很快自動釋放,不用關注
ID1 NUMBER ID1,ID2的取值含義根據type的取值而有所不一樣
ID2 對於TM 鎖
  ID1表示被鎖定表的object_id 能夠和dba_objects視圖關聯取得具體表信息,ID2 值爲0
  對於TX 鎖
  ID1以十進制數值表示該事務所佔用的回滾段號和事務槽slot number號,其組形式:
  0xRRRRSSSS,RRRR=RBS/UNDO NUMBER,SSSS=SLOT NUMBER
  ID2 以十進制數值表示環繞wrap的次數,即事務槽被重用的次數
LMODE NUMBER 0、無
一、NULL,能夠某些狀況下,如分佈式數據庫的查詢會產生此鎖。
二、SS,表結構共享鎖
三、SX,表結構共享鎖+被操做的記錄的排它鎖
四、S, 表結構共享鎖+全部記錄共享鎖
五、SRX 表結構共享鎖+全部記錄排它鎖
六、X   表結構排它鎖+全部記錄排它鎖

如下爲補充上面 摘自:http://www.itpub.net/thread-940126-1-1.html
    2   SS, 表結構共享+加上部分數據共享.雖然有人說,ORACLE裏,數據沒有S狀態,但我仍是願意這樣理解:
         第1個S表明表結構共享.
         第2個表明表裏的數據共享.
         你能夠想象一下,當往子表裏增長紀錄時,主表的相關主鍵是否是得處於共享模式.
    3    SX,   用於DML操做,第1個S表明表結構共享,第2個表明表裏被操做的數據獨佔.
    4    S, 表明表結構+表裏的數據都是處於共享模式.當對錶建立索引時,在建立期間,表處於這種模式.
    5    SRX=S(4)+SX(3),
    6    X, 刪除表是會用上.
REQUEST NUMBER 同上LMODE
大於0時,表示當前會話被阻塞,其它會話佔有改鎖的模式
CTIME NUMBER 已持有或者等待鎖的時間
BLOCK NUMBER 是否阻塞其餘會話鎖申請 2:Global  1:阻塞  0:不阻塞



相關視圖html

視圖名 描述 主要字段說明
v$session 查詢會話的信息和鎖的信息。 sid,serial#:表示會話信息。
program:表示會話的應用程序信息。
row_wait_obj#:表示等待的對象,和dba_objects中的object_id相對應。
lockwait :該會話等待的鎖的地址,與v$lock的kaddr對應.
v$session_wait 查詢等待的會話信息。 sid:表示持有鎖的會話信息。
Seconds_in_wait:表示等待持續的時間信息
Event:表示會話等待的事件,鎖等於enqueue
dba_locks 對v$lock的格式化視圖。 Session_id:和v$lock中的Sid對應。
Lock_type:和v$lock中的type對應。
Lock_ID1: 和v$lock中的ID1對應。
Mode_held,mode_requested:和v$lock中的lmode,request相對應。
v$locked_object 只包含DML的鎖信息,包括回滾段和會話信息。 Xidusn,xidslot,xidsqn:表示回滾段信息。和v$transaction相關聯。
Object_id:表示被鎖對象標識。
Session_id:表示持有鎖的會話信息。
Locked_mode:表示會話等待的鎖模式的信息,和v$lock中的lmode一致。

 

模式 鎖定的SQL 排斥的模式 容許的DML
2 lock table t in row share mode; 6 select,insert,update,delete,for update
3 lock table t in row exclusive mode; 4,5,6 select,insert,update, delete,for update
4 lock table t in share mode; 3,5,6 select
5 lock table t in share row exclusive mode; 3,4,5,6 select
6 lock table t in exclusive mode; 2,3,4,5,6 select
相關文章
相關標籤/搜索