oracle锁

本文详细介绍了Oracle数据库中的锁机制,包括排它锁和共享锁的概念及其应用。还深入解析了不同类型的锁,如DML锁、DDL锁及内部锁的作用,并列举了各种锁在实际SQL操作中的使用情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分为排它锁和共享锁,当一个事务获得排它锁后,其它事务不能进行读或写操作,当一个事务获得共享锁后,其它事务可以进行读操作但不能写。

排它锁也叫写锁或x锁,共享锁叫读锁或s锁。

按保护内容来分:

dml锁,保护数据的完整和一致性,分tm锁(又称表级锁)和tx锁(又称行级锁或事务锁)

ddl锁,保护数据对象结构,比如table,index

内部锁,保护数据库内部结构,比如sga

当oracle进行insert、delete、update、select for update操作,oracle会自动申请tm锁,然后再申请tx锁,tx锁只能是排它锁,共享锁没有意义,oracle在表上面默认是共享锁。

TM锁包括了SS、SX、S、X等多种模式,在数据库中用0-6来表示。不同的SQL操作产生不同类型的TM锁。如下表:

0 none  
1NULL Select
2SS(Row-S)行级共享锁,其他对象只能查询这些数据行Select for update、Lock for update、Lock row share
3SX(Row-X)行级排它锁,在提交前不允许做DML操作Insert、Update、Delete、Lock row share
4S(Share)共享锁Create index、Lock share
5SSX(S/Row-X)共享行级排它锁Lock share row exclusive
6X(Exclusive)排它锁Alter table、Drop able、Drop index、Truncate table 、Lock exclusive

转载于:https://www.cnblogs.com/liluredhat/p/6712937.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值