博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
查询01_DML锁和DDL锁的处理
阅读量:6880 次
发布时间:2019-06-27

本文共 957 字,大约阅读时间需要 3 分钟。

一、摘要


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

 

 

 

转载于:https://www.cnblogs.com/eastsea/p/5326068.html

你可能感兴趣的文章
二叉树(2)——遍历的非递归实现
查看>>
OS X 键盘快捷键
查看>>
linux下vi命令大全
查看>>
设计模式之四:访问者模式
查看>>
加密和解密
查看>>
python使用.proto文件生成service接口失败
查看>>
判断矩形是否在矩形中
查看>>
关于composer.json中require-dev和require-dev、autoload-dev和autoload的区别
查看>>
处理slave(低版本)复制master(高版本)产生的error 1236
查看>>
Vim(gvim)配色方案推荐
查看>>
变量的直接调整运用${variable # 或% }
查看>>
java利用dom4j递归输出所有节点
查看>>
[网络通信]WSAPoll使用
查看>>
Java虚拟机学习 - 垃圾收集器
查看>>
一个类可以实现多个有相同方法的接口
查看>>
Java使用jxl读取excel
查看>>
Grunt 插件开发与调式
查看>>
Python yield用法
查看>>
生成excel表报的控件FlexCel Studio for .NET
查看>>
使用SCVMM 2012 R2管理Hyper-v群集
查看>>