一、摘要


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

1. DML锁:Date
lock。执行DML时保护数据的锁。Row
Lock(TX)保护特定行,Table
Lock(TM)保护整个表,可以通过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$KGLLK,DBA_KGLLOCK等视图观察。

对于表,普通DML语句以Sub-Exclusive(SX)模式获得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

查询01_DML锁和DDL锁的处理的更多相关文章

  1. 【锁】Oracle锁系列

    [锁]Oracle锁系列 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ...

  2. Oracle 6 - 锁和闩 - 锁类型

    Oracle锁大类 1.DML锁 (SELECT, INSERT, UPDATE, DELETE, MERGE是对数据库加的锁, 可能是行锁,也可能是表锁) 2.DDL锁 (Create, Alter ...

  3. 【数据库】数据库的锁机制,MySQL中的行级锁,表级锁,页级锁

    转载:http://www.hollischuang.com/archives/914 数据库的读现象浅析中介绍过,在并发访问情况下,可能会出现脏读.不可重复读和幻读等读现象,为了应对这些问题,主流数 ...

  4. [数据库锁机制] 深入理解乐观锁、悲观锁以及CAS乐观锁的实现机制原理分析

    前言: 在并发访问情况下,可能会出现脏读.不可重复读和幻读等读现象,为了应对这些问题,主流数据库都提供了锁机制,并引入了事务隔离级别的概念.数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务 ...

  5. Java并发 行级锁/字段锁/表级锁 乐观锁/悲观锁 共享锁/排他锁 死锁

    原文地址:https://my.oschina.net/oosc/blog/1620279 前言 锁是防止在两个事务操作同一个数据源(表或行)时交互破坏数据的一种机制. 数据库采用封锁技术保证并发操作 ...

  6. oracle学习----DDL锁理解

    DDL锁分为三种 1.排他DDL锁 2.共享DDL锁 3.可中断解析锁 大部分DDL都带有排他DDL锁,如一个表被修改中,可以使用select查询数据,但是大多数操作都是不允许执行的,包括所有其他DD ...

  7. SQLServer 查询使用键查找时锁申请及释放顺序

    最近看了高兄的一篇文章,Sql Server 高频,高并发访问中的键查找死锁解析,很有收获,里面讲到了键查找引起的死锁问题. 当然看的过程中,其实自己有个疑问: 对于键查找这类查询,会申请哪些锁,锁申 ...

  8. mysql DDL 锁表

    mysql DDL 锁表 select trx_state, trx_started, trx_mysql_thread_id, trx_query from information_schema.i ...

  9. day44——索引、explain、慢查询、数据备份、锁、事务

    day44 索引介绍 为何要有索引? ​ 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还有一些复杂的查询操作 ...

随机推荐

  1. clip 属性剪裁绝对定位元素

    如果left >= right或者bottom <= top,则元素会被完全裁掉而不可见,即“隐藏”.通过这种方式隐藏的元素是可以被屏幕阅读器等辅助设备识别的,从而提高了页面的可用性. I ...

  2. Unity3D-坐标转换笔记

    Transform.TransformPoint 作用 : 将一个点从以自身为坐标系的本地坐标转换成世界坐标 Transform.InverseTransformPoint 作用 : 将一个点从世界坐 ...

  3. 【并查集】【树】最近公共祖先LCA-Tarjan算法

    最近公共祖先LCA 双链BT 如果每个结点都有一个指针指向它的父结点,于是我们可以从任何一个结点出发,得到一个到达树根结点的单向链表.因此这个问题转换为两个单向链表的第一个公共结点(先分别遍历两个链表 ...

  4. 在Sublime Text 3 中安装SublimeLinter,Node.js进行JS&CSS代码校验

    转载自:http://www.wiibil.com/website/sublimelinter-jshint-csslint.html 在Sublime Text中安装SublimeLinter,No ...

  5. mysql max_allowed_packet

    系统linux > show global max_allowed_packet; >set global max_allowed_packet=1024*1024: 退出mysql,重启 ...

  6. 深入理解 C 语言的函数调用过程

    来源: wjlkoorey 链接:http://blog.chinaunix.net/uid-23069658-id-3981406.html 本文主要从进程栈空间的层面复习一下C语言中函数调用的具体 ...

  7. java虚拟机之引用

    强引用: 类似:object A=new Object();这样的引用,只要强引用还存在,垃圾回收期就永远不会回收被引用的对象,eg:这里的new Oject().   软引用: 一些还有用,但是非必 ...

  8. 最近这两天看了关于H5游戏开发的一个教程,实践很短暂,看了很多理论的东西,现在呢也只是想回忆回忆关于EUI的部分知识吧

    首先我了解了什么是Egret: Egret中文就是白鹭的意思,Egret是一套H5游戏开发的软件.(纯粹属于个人理解) 其次我对以下几款软件的相关知识做了些了解: Egret Engine(引擎),E ...

  9. 转载《 LayoutInflater 的inflate函数用法详解》

    很多人在网上问LayoutInflater类的用法,以及inflate()方法参数的含义,现解释如下: inflate()的作用就是将一个用xml定义的布局文件查找出来,注意与findViewById ...

  10. php-长文章分页函数

    <?php function ff_page($content,$page) { global $expert_id; $PageLength = 2000; //每页字数 $CLength = ...