zoukankan      html  css  js  c++  java
  • Oracle 动态视图1 V$LOCK

      v$lock显示数据库当前持有锁情况

    Column Datatype Description
    SID NUMBER 会话ID
    TYPE VARCHAR2(2) 表示锁的类型。值包括TMTX,等
    ID1 NUMBER

    对于TM锁:ID1表示被锁定表的object_id 可以和dba_objects视图关联取得具体表信息;

    对于TX锁:ID1以十进制数值表示该事务所占用的回滚段号和事务槽slot number号

    ID2 NUMBER 对于TM锁:ID2 值为0;对于TX锁:ID2 以十进制数值表示事务槽被重用的次数
    LMODE NUMBER 持有锁模式:
    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 NUMBER 申请锁模式:
    0 - none
    1 - null (NULL)
    2 - row-S (SS)
    3 - row-X (SX)
    4 - share (S)
    5 - S/Row-X (SSX)
    6 - exclusive (X)
    CTIME NUMBER 持有锁的时间
    BLOCK NUMBER 是否正在阻塞其他会话锁申请 1:阻塞 0:不阻塞

    示例展示:

    会话1

     1 --查看当前会话1持有锁情况
     2 select sid,type,id1,id2,lmode,request,block 
     3 from v$lock
     4 where sid in (select sid from v$mystat where rownum=1);
     5 
     6 无记录
     7 
     8 --加锁
     9 select * from t1 for update ;
    10 
    11 --查看加锁后的v$lock
    12 SQL> select sid,type,id1,id2,lmode,request,block 
    13   2  from v$lock
    14   3  where sid in (select sid from v$mystat where rownum=1);
    15 
    16        SID TY        ID1        ID2      LMODE    REQUEST      BLOCK
    17 ---------- -- ---------- ---------- ---------- ---------- ----------
    18        133 TM      53252          0          3          0          0
    19        133 TX     196630        636          6          0          0
    20 
    21 --当前会话持有两种类型锁:TM(表级锁),TX(行级锁)。锁模式分别为:3,6。BLOCK为:0

    会话2

     1 --开启会话2 
     2 --查看当前会话2持有锁情况
     3 select sid,type,id1,id2,lmode,request,block 
     4 from v$lock
     5 where sid=140;
     6 
     7 无记录
     8 
     9 --加锁
    10 select * from t1 for update ;
    11 
    12 会话夯住了

    切回会话1

     1 --切换的会话1 查看两个会话持锁状态
     2 SQL> select sid,type,id1,id2,lmode,request,block
     3   2  from v$lock
     4   3  where sid in (133,140);
     5 
     6        SID TYPE      ID1        ID2      LMODE    REQUEST      BLOCK
     7 ---------- -- ---------- ---------- ---------- ---------- ----------
     8        133 TX     196630        636          6          0          1
     9        133 TM      53252          0          3          0          0
    10        140 TX     196630        636          0          6          0
    11        140 TM      53252          0          3          0          0       
    12 SQL> 
    13 
    14 --会话133: TYPE(tm) lmode(3) block(0)
    15            TYPE(tx) lmode(6) block(1)  --在行级持有排它锁,并正在阻塞其它会话
    16            
    17 --会话140:TYPE(tm) lmode(3)   block(0)
    18            TYPE(tx) request(6) block(0)  --正在申请行级排它锁 

    相关锁的知识介绍:Oracle Lock 概述

  • 相关阅读:
    uva11922splay
    获取的二维数组排序
    二维数组排序
    $.extend
    <eq>标签
    datagrid时间插件
    id=%d是什么意思呢?
    获得某一月的第一天,最后一天
    数组合并
    phpexcel 导入导出excel表格
  • 原文地址:https://www.cnblogs.com/polestar/p/3334570.html
Copyright © 2011-2022 走看看