zoukankan      html  css  js  c++  java
  • 查询01_DML锁和DDL锁的处理

    一、摘要


    Oracle的手册上关于锁的分类说明如下:

     

    1. DML锁:Date lock。执行DML时保护数据的锁。Row LockTX)保护特定行,Table LockTM)保护整个表,可以通过dba_kml_locks观察。

    2. DDL锁:Data dictionary lock。保护User/Table/View/Procedure等定义,可以通过dba_ddl_locks观察。

     

    实际上,DML锁和DDL锁只是为了合理分配锁而赋予的名称,请注意这点。

     

    DML锁实际上与TM锁一致,DML锁可以通过dba_dml_locks视图观察,这个视图的作用是从V$lock视图上筛选出锁类型为TM的。

    数据库上允许的TM锁数量,可以利用DML_LOCKS参数指定。若将DML_LOCKS参数设置为0,则对表无法获得TM锁。

    这时,oracle为了保障表定义被保护,对于表根本上不允许DDL操作。

    此,即便不获得TM锁,也允许修改该表的特定行。

    OPS环境下,为了减少在全局范围内获得TM锁过程中发生的附加资源消耗,有时也将DML_LOCKS值修改为0

     

    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锁。

     

    二、监控DDL和DML锁


    1. DBA_DML_LOCKS视图在v$locks视图上只选出TM锁并加工得到的;


    2. DBA_DDL_LOCKS视图是加工X$KGLLK视图得到的;


    Thanks and Regards

    2016-03-25 Created By BaoXinjian




     


     


     









  • 相关阅读:
    分段随机实践—模拟线上流量
    基于docker的分布式性能测试框架功能验证(二)
    将博客搬家至CSDN
    考研机试 98.棋盘游戏
    考研机试 100.路径打印
    考研机试 102.计算表达式
    考研机试 97.数字反转
    考研机试 90.简单密码
    考研机试 87.鸡兔同笼
    考研机试 79.浮点数加法
  • 原文地址:https://www.cnblogs.com/eastsea/p/5326068.html
Copyright © 2011-2022 走看看