您的位置:首页 > 数据库 > Oracle

Oracle如何保证并发操作?

2017-03-13 18:47 274 查看
Oracle采用封锁技术保证并发操作的可串行性[/b]。 Oracle的锁分为两大类:数据锁(亦称DML锁)和字典锁。 字典锁是Oracle DBMS内部用于对字典表的封锁。字典锁包括语法分析锁和DDL锁,由DBMS在必要的时候自动加锁和释放锁,用户无权控制。 Oracle主要提供了五种数据锁: 共享锁(S锁)、排他锁(X锁)、行级共享锁(RS锁)、行级排他锁(RX锁)和共享行级排他锁(SRX锁)。 其封锁粒度包括行级和表级。数据锁的相容矩阵如图所示。
Oracle数据锁的相容矩阵


在通常情况下,数据封锁由数据库系统控制,对用户透明。但Oracle也允许用户用LOCK TABLE语句显式对封锁对象加锁。 Oracle数据锁的一个显著特点是,在缺省情况下,读数据不加锁。也就是说,当一个用户更新数据时,另一个用户可以同时读取相应数据,反之亦然。Oracle通过回滚段(Rollback Segment)的内存结构来保证用户不读“脏”数据和可重复读。这样做的好处是提高了数据的并发度。
Oracle提供了有效的死锁检测机制,周期性诊断系统中有无死锁,若存在死锁,则撤消执行更新操作次数最少的事务。 [/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: