zoukankan      html  css  js  c++  java
  • oracle学习----DDL锁理解

    DDL锁分为三种

    1.排他DDL锁

    2.共享DDL锁

    3.可中断解析锁

    大部分DDL都带有排他DDL锁,如一个表被修改中,可以使用select查询数据,但是大多数操作都是不允许执行的,包括所有其他DDL语句。

    但是在oracle中,有一些DDL操作没有DDL锁也发生。比如online创建索引

    在线创建索引,会带有DL,OD,低级TM锁,但是没有排他DDL锁

    DL 直接加载锁,对表进行直接加载路径与创建索引不能同时进行。

    OD锁 online DDL支持真正的联机。

    低级TM锁 防止其他DDL发生,同时还允许DML正常进行

    另一类是共享DDL锁

    创建过程或视图时,会对其中涉及到的表添加共享DDL锁,这样可以修改表的内容但是不能修改表的结构。

    可中断解析锁

    会话解析一条语句时,对于该语句引用的每一个对象都会施加解析锁,这个目的是如果以某种方式删除或修改了引用对象,可以将共享池中已经解析的缓存语句无效刷出。

    查询指定表的锁情况
    select
    (select username from v$session where sid=v$lock.sid) username,
    sid,
    id1,
    id2,
    lmode,
    request,block,v$lock.type
    from v$lock
    where id1=73834;//object_id  通过user_objects查询

    查询当前会话的可中断解析锁,作用是发现代码无法编译或超时等待可以通过这个查询找到谁正在使用
    set linesize 1000
    select session_id sid,owner,name,type,mode_held held,mode_requested request
    from dba_ddl_locks
    where session_id = (select sid from v$mystat where rownum=1);

  • 相关阅读:
    史上最容易听错的歌词
    笑话
    商贸通转入EXCEL中的账查不能自动进行合计
    XP登陆后自动注销!
    在Windows系统上如何安装虚拟网卡
    全球最佳造句奖
    一个电脑白痴和黑客的对话
    光棍与非光棍的N条区别
    『转』组合数快速算法!!!
    中国剩余定理
  • 原文地址:https://www.cnblogs.com/SUN-PH/p/4159786.html
Copyright © 2011-2022 走看看