zoukankan      html  css  js  c++  java
  • Oracle 锁和闩 锁表查询

    --锁表查询SQL
    SELECT object_name, machine, s.sid, s.serial#
    FROM gv$locked_object l, dba_objects o, gv$session s
    WHERE l.object_id = o.object_id
    AND l.session_id = s.sid;
    
    --释放SESSION SQL:
    --alter system kill session 'sid, serial#';
    ALTER system kill session '1065, 57065';
    
    
    
    -- DML锁
    -- 事务锁 `TX锁`
    -- 事务,锁,会话的系统视图
    SELECT * FROM V$transaction ; 
    SELECT * FROM V$SESSION ;
    -- 队列表,锁表
    SELECT * FROM v$lock;
    -- scoot测试表模拟排他锁事务
    CREATE TABLE dept AS SELECT * FROM scott.dept;
    SELECT * FROM dept;
    CREATE TABLE emp AS SELECT * FROM scott.emp;
    SELECT * FROM emp;
    ALTER TABLE dept ADD CONSTRAINT dept_pk PRIMARY KEY(deptno);
    ALTER TABLE emp ADD CONSTRAINT emp_pk PRIMARY KEY(empno);
    CREATE INDEX emp_dept_idex ON emp(deptno);
    -- 模拟
    -- 会话1
    UPDATE dept SET dname = INITCAP(dname);
    -- 会话2
    UPDATE dept SET dname = INITCAP(dname);
    -- 会话3
    UPDATE emp SET ename= UPPER(ename);
    -- lmode=6 :排他锁
    -- request=0:没有发出请求,你拥有这个锁,如果不为0,则是一个等待的排队请求
    SELECT username,v$lock.sid,TRUNC(id1/POWER(2,16)) rbs,
    BITAND(id1,to_number('ffff','xxxx'))+0 slot,
    id2 seq,
    lmode,
    request
    FROM v$lock,v$session 
    WHERE v$lock.type = 'TX'
    AND v$lock.sid = v$session.sid
    AND v$session.USERNAME = USER;   
    -- 事务id(usn,slot,sqn) 对应于上面sql的(rbs,slot,seq)
    SELECT xidusn,xidslot,xidsqn FROM v$transaction;
    -- v$lock自连接找出阻塞的sid
    SELECT 
       (SELECT username FROM v$session WHERE SID=a.sid) blocker,
       a.sid,
       'is_blocking',
       (SELECT username FROM v$session WHERE SID=b.sid) blockee,
       b.sid
    FROM v$lock a , v$lock b
    WHERE a.BLOCK = 1 
    AND b.REQUEST = 0
    AND a.id1 = b.id1
    AND a.id2 = b.id2;
    

      

  • 相关阅读:
    open文件操作之mode模式剖析
    super函数没有那么简单-super原理剖析
    mac下 将python2.7改为python3
    《图解http》构建Web内容的技术
    《图解HTTP》Web的攻击技术
    java获取服务器信息
    免费的论文查重网站
    gitlab持续集成,自动部署
    mybatis-plus invalid bound statement (not found) insert解决办法
    锁原理:偏向锁、轻量锁、重量锁
  • 原文地址:https://www.cnblogs.com/fubinhnust/p/9928757.html
Copyright © 2011-2022 走看看