`

Oracle行级锁和表级锁

 
阅读更多
1、DML锁包括行级锁(TX)和表级锁(TM) 2、行级锁不是单独存在的,当事务获得了某些数据行上的行级锁时,此事务同时获得了数据行所属表上的表级锁,因为表级锁能够防止系统中并发地执行有冲突的 DDL 操作,避免当前事务中的数据操作被并发地DDL 操作影响。
行级锁
可以用select * from table t where t.a='b' for update;

表级锁
lock table table_name



1、DML锁包括行级锁(TX)和表级锁(TM)
2、行级锁不是单独存在的,当事务获得了某些数据行上的行级锁时,此事务同时获得了数据行所属表上的表级锁,因为表级锁能够防止系统中并发地执行有冲突的 DDL 操作,避免当前事务中的数据操作被并发地DDL 操作影响。
3、表级锁分为5种,限制程度升序排列:
   (1)行共享(row share):与行排他类似,区别是别的事务还可以在此表上加任何排他锁。(除排他(exclusive)外)
   (2)行排他(row exclusive):其他事务依然可以并发地对相同数据表执行查询,插入,更新,删除操作,或对表内数据行加锁的操作,但不能有其他的排他锁(自身是可以的,没发现有什么用)
   (3)共享(share):在表没有被任何DML操作时,多个事务都可加锁,但只有在仅一个事务加锁的情况下只有此事务才能对表更新;当表已经被更新或者指定要更新时(select for update),任何事务都不能加此锁了。
   (4)共享行排他(share row exclusive):在表没有被任何DML操作时,只有一个事务可以加锁,可以更新,书上说别的事务可以使用select for update锁定选中的数据行,可是实验后没被验证。
   (5)排他(exclusive):在表没有被任何DML操作时,只有一个事务可以加锁,可以更新,与共享行排他的区别还没有发现
分享到:
评论

相关推荐

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

    在DBMS中,可以按照锁的粒度把数据库锁分为行级锁(INNODB引擎)、表级锁(MYISAM引擎)和页级锁(BDB引擎 )。 一、行级锁 行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少...

    oracle常见的锁查询和处理

    表级锁(TM锁) 锁定相关视图 v$transaction v$lock 5 v$enqueue_lock v$session 检测并解决冲突 常见的锁查询和处理 当前系统中存在的锁争用: 引发争用的session信息: 引发争用的sql语句: 引发争用的数据对象 ...

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

    Oracle五种表级排他锁的总结和归纳行级排他锁 (Row Exclusive Table Lock,RX)

    oracle锁机制探讨

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

    MySQL中的行级锁定示例详解

    锁是在执行多线程时用于强行限定资源访问的同步机制,数据库锁根据锁的粒度可分为行级锁,表级锁和页级锁 行级锁 行级锁是mysql中粒度最细的一种锁机制,表示只对当前所操作的行进行加锁,行级锁发生冲突的概率很...

    ORACLE锁深入分析

    在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁,TX锁称为事务锁或行级锁。? 当Oracle执行DML语句时,系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后,系统再自动申请TX类型的锁,并将实际...

    oracle中锁的级别和锁表语句

    文章目录锁模式值列表锁表语句例子wait 和 nowait锁模式row share(share update) 2级锁row exclusive 3级锁share 4级锁share row exclusive 5级锁exclusive 6级锁各个锁的例子其他 锁模式值列表 值为0-6。其实常见的...

    mysql和oracle的区别小结(功能性能、选择、使用它们时的sql等对比)

    虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。 oracle: oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的...

    快速查出Oracle数据库中锁等待的方法

    这些锁定中有”只读锁”、”排它锁”,”共享排它锁”等多种类型,而且每种类型又有”行级锁”(一次锁住一条记录),”页级锁”(一次锁住一页,即数据库中存储记录的最小可分配单元),”表级锁”(锁住整个表)。...

    详解mysql 中的锁结构

     行级锁和表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题。 InnoDB的行锁模式及加锁方法 InnoDB实现了以下两种类型的行锁。 共享锁(s):允许一个事务去读一行,阻止其他事务获

    mysql和oracle的区别(功能性能、选择、使用它们时的sql等对比)

    虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。 oracle: oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的...

    oracle SQL命令大全

    (删除表中记录时释放表空间) DML 语句: 表级共享锁: 对于操作一张表中的不同记录时,互不影响 行级排它锁:对于一行记录,oracle 会只允许只有一个用户对它在同一时间进行修改操作 wait() 等到行级锁被释放,...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    日期类型 date 7字节 用于存储表中的日期和时间数据,取值范围是公元前4712年1月1日至公元9999年12月31日,7个字节分别表示世纪、年、月、日、时、分和秒 二进制数据类型 row 1~2000字节 可变长二进制数据,在具体...

    ORACLE9i_优化设计与系统调整

    §7.1 应用系统环境规划和Oracle系统安装考虑 91 §7.1.1 操作系统安装考虑 91 §7.1.2 Oracle系统安装考虑 92 §7.2 关于创建多个Oracle实例问题 93 §7.3 Oracle系统安装后的优化基础工作 94 §7.3.1 Oracle系统...

    Oracle数据库、SQL

    8.4行级信息和组级信息 16 九、 group by子句 17 9.1语法和执行顺序 17 9.2分组过程 17 9.3常见错误 17 9.4多列分组 17 十、 having子句 18 10.1语法和执行顺序 18 10.2执行过程 18 10.3 where和having区别 18 十一...

    最全的oracle常用命令大全.txt

    查看当前用户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 2、表 查看用户下所有的表 SQL>select * from user_tables; 查看名称包含log字符的表 SQL>...

    oracle数据库经典题目

    12.根据约束的作用域,约束可以分为表级约束和列级约束两种。列级约束是字段定义的一部分,只能够应用在一个列上;而表级约束的定义独立于列的定义,它可以应用于一个表中的多个列。 13.填写下面的语句,使其可以为...

    orcale常用命令

    查看当前用户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 2、表 查看用户下所有的表 SQL>select * from user_tables; 查看名称包含log字符的表 SQL>...

    Oracle从入门到精通

    2.4 创建和管理表.......................................... 1、表(TABLE)基本的存储单位,由行和列组成。.............. 2、方案:一个用户所有对象的命名集合。..................... 3、CTAS(子查询建表):...

Global site tag (gtag.js) - Google Analytics