`
solitary
  • 浏览: 73669 次
社区版块
存档分类
最新评论

oracle 行级锁与表级锁

阅读更多
一、行级锁:
(下面这句将给该表的所有行都加上锁)
select * from person for update;

如果该行记录已经被锁定,就不用等待,系统会直接抛错 ora-00054
select * from person  where id = '1'  for update nowait

如果该行记录已经被锁定,更新的时候等待5秒,如果这5秒内,该行记录被解锁,那么返回查询结果,如果5秒内仍未解锁,那么系统会直接抛错 ora-00054
select * from person for update wait 5;

另外,如果使用 select * from person  where id = '1'  for update ,当该行记录已经被锁定时,那么系统将一直等待该行记录被释放后,再加锁。

二、表级锁:

行共享:允许用户进行任何操作,禁止排他锁
lock table person in row share mode;

行排他:允许用户进行任何操作,禁止共享锁
lock table person in row exclusive mode;

共享锁:其他用户只能看,不能修改
lock table person in share mode;

共享行排他:比共享锁有更多限制
lock table person in share row exclusive mode;

排他锁:其他用户只能看,不能修改,不能加其他锁
lock table person in exclusive mode;


对于通过lock table命令主动添加的锁定来说,如果要释放它们,只需要发出rollback命令即可。
3
1
分享到:
评论
4 楼 surgar 2014-07-15  
[url][/url]
3 楼 surgar 2014-07-15  
[img][/
|
]  [b][/b]
引用
2 楼 solitary 2012-03-01  
自己顶一个
1 楼 crystal2012 2012-02-07  
很好很强大

相关推荐

    MySQL中的行级锁、表级锁、页级锁

    MySQL数据库在处理并发操作时,为了保证数据的一致性和完整性,使用了不同的锁机制,包括行级锁、表级锁和页级锁。这三种锁的粒度不同,各有优缺点,适用于不同的场景。 行级锁是MySQL中最细粒度的锁,仅锁定操作的...

    Oracle的锁表与解锁

    锁可以分为行级锁(Row Level Lock)和表级锁(Table Level Lock),以及更细粒度的锁类型。本文将深入探讨Oracle中的锁机制,特别是如何锁表与解锁,以及相关的SQL查询语句,帮助数据库管理员和开发人员更好地理解...

    oracle常见的锁查询和处理

    Oracle数据库的锁机制是保证数据并发访问安全的重要手段,它主要分为行级锁(TX锁)和表级锁(TM锁)。行级锁确保在多用户环境下,同一时间只有一个用户可以更新特定的数据行,而其他用户可以读取,但不能进行修改。...

    Oracle行级锁的特殊用法简析

    Oracle行级锁是数据库管理系统中用于确保数据并发访问安全的重要机制。它主要针对单个行或者一组行进行锁定,以防止多个事务同时修改相同的数据,从而避免数据的不一致性。行级锁相比于表级锁提供了更高的并发性能,...

    Oracle五种表级排他锁的总结和归纳

    行级排他锁与行级共享锁类似,但允许其他事务对锁定行之外的行加行级共享或排他锁。拥有 RX 锁的事务可以执行 `INSERT`, `UPDATE`, `DELETE` 操作。加锁通常通过 `LOCK TABLE TableName IN ROW EXCLUSIVE MODE` 或 `...

    Oracle锁和表分区

    Oracle支持多种级别的锁,包括行级锁和表级锁。 - **行级锁**:行级锁只锁定特定的行,避免了不同用户对同一行数据的冲突。例如,当用户执行`SELECT...FOR UPDATE`语句时,Oracle会在选定的行上设置一个排他锁,...

    Oracle的锁机制

    按锁的粒度,Oracle有行级锁和表级锁。行级锁更细粒度,减少锁冲突,提高并发性。表级锁则更大粒度,易于管理,但可能导致更大的锁定范围。共享锁(S)、排它锁(X)、行级共享锁(RS)、行级排它锁(RX)和共享行级...

    对于Oracle锁的一些理论总结

    DML锁是本文的重点,它包括行级锁(row level lock)和表级锁(table level lock)。 1. 行级锁(TX):Oracle的行级锁并不像其他数据库那样,对每一行数据都单独加锁。实际上,Oracle采用事务级的行级锁,即TX锁。...

    oracle锁表及解锁

    Oracle中的锁主要有两种类型:表级锁(Table Locks)和行级锁(Row Locks),分别由`TM`和`TX`标识。表级锁通常用于DML操作或DDL操作,而行级锁则是在执行更新、插入或删除等操作时自动产生的。 #### 检查锁定情况 ...

    Oracle数据库的锁类型

    DML锁主要关注的是数据级别的锁控,包括TM锁(表级锁)和TX锁(事务锁或行级锁)。这些锁在执行DML(数据操纵语言)操作时自动触发,以确保数据在并发环境下的完整性和一致性。 ##### 1. TM锁:表级锁 TM锁是针对...

    oracle中锁和表分区

    锁分为不同级别,包括行级锁和表级锁。行级锁锁定的是单个数据行,允许其他用户同时访问表中的非锁定行,但在事务提交之前,其他用户无法修改或读取锁定的行。表级锁则更严格,它锁定整个表,阻止其他用户在事务未...

    表级锁(TM锁) 表级锁(TM锁) 表级锁(TM锁) 表级锁(TM锁)

    当用户A对employee_id为100的记录进行更新时,Oracle会在数据行头部添加行级锁,并且同时在表级别上设置一个表级锁。这样,当用户D尝试删除该表时,会检测到表上的TM锁,进而阻止删除操作,直到用户A的事务完成并...

    oracle锁机制探讨

    在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁(用来保证表的结构不被用户修改),TX锁称为事务锁或行级锁。当Oracle执行DML语句时,系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后,系统...

    Oracle数据库锁的研究.pdf

    - DML锁(Data Manipulation Language Locks):用于数据操作,包括行级锁(TX锁)和表级锁(TM锁)。行级锁在事务对数据行进行修改时自动获取,如INSERT、UPDATE、DELETE和SELECT...FOR UPDATE语句会引发行级锁。...

    oracle数据库锁表处理

    2. **表级锁**:作用于整个表,影响范围较广。 3. **模式对象锁**:作用于模式对象(如表、视图等)。 4. **数据块锁**:作用于数据块,比行级锁更粗粒度。 #### 三、查看锁表情况 1. **查询锁定的对象**: ```...

    Oracle分区表和锁的应用

    - **表级锁(TABLE LOCK)**:锁定整个表,适用于全表扫描或批量操作。 - **行级意向锁(INTENTION LOCKS)**:用于多粒度锁定,表明接下来的锁定将是行级或表级。 2. **锁模式**: - **共享锁(SHARE LOCK)**...

    Oracle锁 图例

    2. 行级锁:行级锁比表级锁提供更细粒度的并发控制,分为行共享锁(Row Share Locks, RS locks)和行排他锁(Row Exclusive Locks, RX locks)。行共享锁只允许读取一行,行排他锁允许读取和修改一行。 3. 间隔锁...

    相克军 ORACLE 讲座 深度剖析 锁 笔记

    本篇笔记主要围绕相克军老师的ORACLE锁讲座内容展开,详细介绍了Oracle中的锁类型、行级锁与表级锁的使用,以及锁的兼容性和相关视图。 1. **ORACLE 锁类型** - **Latch 锁**:Latch 是一种轻量级锁,用于保护...

Global site tag (gtag.js) - Google Analytics