查询01_DML锁和DDL锁的处理

简介: 一、摘要Oracle的手册上关于锁的分类说明如下: 1. DML锁:Date lock。执行DML时保护数据的锁。Row Lock(TX)保护特定行,Table Lock(TM)保护整个表,可以通过dba_kml_locks观察。

一、摘要


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




 


 


 









ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
相关文章
|
2月前
|
SQL Oracle 关系型数据库
DDL、DML和DCL的区别与理解
DDL、DML和DCL的区别与理解
67 1
DDL、DML和DCL的区别与理解
|
4月前
|
SQL
dml
DML(增删改表中的数据) 1.添加数据 insert into 表名(列名1,列名2)values(数据1,数据2) 2.删除数据 delete from 表名 where 条件 delete from 表名--效率低,有多少条执行多少次 truncate table 表名--先删除表,在创建 3.修改数据 update 表名 set 列名1=值1 条件
32 0
|
2月前
|
SQL 关系型数据库 MySQL
⑩⑦【MySQL】锁:全局锁、表级锁、行级锁
⑩⑦【MySQL】锁:全局锁、表级锁、行级锁
30 0
|
3月前
|
SQL 数据库
DML
DML
13 0
|
7月前
|
SQL 存储 Oracle
数据库的行级锁与表锁?
数据库的行级锁与表锁?
42 0
|
7月前
|
数据库
游标 事务 锁
游标 事务 锁
35 0
|
7月前
|
数据库
数据库的行级锁和表锁
数据库的行级锁和表锁
86 0
|
8月前
|
存储 SQL 关系型数据库
对于数据库而言,其锁范围可以分为全局锁 、表级锁、 行级锁
对于数据库而言,其锁范围可以分为全局锁 、表级锁、 行级锁
|
12月前
|
SQL 存储 关系型数据库
【MySQL】全局锁、表级锁、行级锁
【MySQL】全局锁、表级锁、行级锁
152 0
【MySQL】全局锁、表级锁、行级锁
|
存储 SQL 关系型数据库
SQL 事务与锁 详解
SQL 事务与锁 详解
SQL 事务与锁 详解