Oracle如何保证并发操作?

本文介绍了Oracle数据库中的锁机制,包括数据锁和字典锁的概念。详细解析了共享锁、排他锁等五种数据锁类型及其特性,并阐述了Oracle如何通过回滚段保证数据的一致性和并发性。

Oracle采用封锁技术保证并发操作的可串行性

Oracle的锁分为两大类:数据锁(亦称DML锁)和字典锁。

字典锁是Oracle DBMS内部用于对字典表的封锁。字典锁包括语法分析锁和DDL锁,由DBMS在必要的时候自动加锁和释放锁,用户无权控制。

Oracle主要提供了五种数据锁:

共享锁(S锁)、排他锁(X锁)、行级共享锁(RS锁)、行级排他锁(RX锁)和共享行级排他锁(SRX锁)。

其封锁粒度包括行级和表级。数据锁的相容矩阵如图所示。


Oracle数据锁的相容矩阵


Oracle如何保证并发操作? - 那海蓝蓝 - 那海蓝蓝的博客
 

在通常情况下,数据封锁由数据库系统控制,对用户透明。但Oracle也允许用户用LOCK TABLE语句显式对封锁对象加锁。

    Oracle数据锁的一个显著特点是,在缺省情况下,读数据不加锁。也就是说,当一个用户更新数据时,另一个用户可以同时读取相应数据,反之亦然。Oracle通过回滚段(Rollback Segment)的内存结构来保证用户不读“脏”数据和可重复读。这样做的好处是提高了数据的并发度。

Oracle提供了有效的死锁检测机制,周期性诊断系统中有无死锁,若存在死锁,则撤消执行更新操作次数最少的事务。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值