查询01_DML锁和DDL锁的处理

1、摘要
数据库


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

 

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

2. DDL锁:Data dictionary lock。保护User/Table/View/Procedure等定义,能够经过dba_ddl_locks观察。 3d

 

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

 

DML锁实际上与TM锁一致,DML锁能够经过dba_dml_locks视图观察,这个视图的做用是从V$lock视图上筛选出锁类型为TM的。blog

数据库上容许的TM锁数量,能够利用DML_LOCKS参数指定。若将DML_LOCKS参数设置为0,则对表没法得到TM锁。资源

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

此,即使不得到TM锁,也容许修改该表的特定行。get

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

 

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

 

2、监控DDL和DML锁


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


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


Thanks and Regards

2016-03-25 Created By BaoXinjian




 


 


 







相关文章
相关标签/搜索