oracle 锁----续

之前介绍了oracle几种锁,还没有完全介绍完,下面继续。

5号锁:SSX(SRX)

触发条件:LOCK TABLE table IN SHARE ROW EXCLUSIVE MODE;

和3~6号锁都不兼容,可以理解为级别最高的表锁

6号锁:X

触发条件:LOCK TABLE table IN EXCLUSIVE MODE;

只允许select

汇总一下触发DML的条件:

oracle 锁----续 - dazuiba_008 - 魂醉的一亩二分地

Y*如果没有行锁的冲突,就是Y,如果有,那么wait。

这里DML就介绍完了,下面还有DDL锁

DDL锁分类:

DDL专有锁

DDL共享锁

DDL专有锁:用于阻止别的用户在DDL的对象上做定义修改,触发条件:alter table和drop table,DDL也获得DML锁,所以DML中不能操作DDL

DDL共享锁:有些DDL语句是可以并发执行的,在它所涉及的对象上会有DDL共享锁,保护对象的定义变更。、

举例:如果在一个T1表上同时多个用户建立过程或者包等等,就会加一个DDL共享锁,这个时候在T1表上的DML操作是可以的,但是不能更改表的定义,比如alter table add column这种类型。

触发条件:AUDIT,NOAUDIT,COMMENT,CREATE[ORREPLACE] VIEW/PROCEDURE/PACKAGE/PACKAGEBODY/FUNCTION/TRIGGER,CREATE SYNONYM, andCREATETABLE

DDL锁的兼容表:

oracle 锁----续 - dazuiba_008 - 魂醉的一亩二分地

Breakable Parse Locks(易破碎的解析锁)

锁在SQL/PLSQL关联的对象上,不阻塞任何操作。

这个锁是在SQL/PLSQL解释阶段获取,可以通过DBA_DDL_LOCKS查看session占有的破碎解析锁。

DDL锁在执行完自动提交结束后,就消失了。

Breakable Parse Locks,只要SQL/PLSQL在共享池,那么就一直保持。

好了,oracle的全部锁的介绍就到这里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值