ORACLE-锁
ccwgpt 2024-11-25 10:24 37 浏览 0 评论
oracle中的锁
1、Table Locks (TM)
当事务通过INSERT、UPDATE、DELETE、MERGE和FOR UPDATE对表进行修改时,就会获得一个表锁,也称为TM锁子句,或锁表语句。DML操作需要表锁来为事务保留对表的DML访问权限,并防止DDL与事务冲突的操作。
2、Row Share (RS)
这个锁,也称为子共享表锁(SS),表示持有表上锁的事务已锁定表中的行并打算锁定更新它们。行共享锁是表锁中限制最少的一种模式,它为表提供最高程度的并发性。
3、Row Exclusive Table Lock (RX)
这个锁,也称为subexclusive table lock (SX),通常表示持有锁的事务已经更新了表行或发出了SELECT…FOR UPDATE。SX锁允许其他事务在同一表中同时查询、插入、更新、删除或锁定行。因此,SX锁允许多个事务为同一个表获取同步的SX和子共享表锁。
4、Share Table Lock (S)
事务持有的共享表锁允许其他事务查询表(除了SELECT…FOR UPDATE),但只允许更新如果一个事务持有共享表锁。由于多个事务可能同时持有一个共享表锁,因此持有此锁不足以确保事务可以修改表。
5、Share Row Exclusive Table Lock (SRX)
这个锁,也称为共享-subexclusive table锁(SSX),比共享表锁有更多的限制。一次只能获得一个事务SSX锁定给定的表。事务持有的SSX锁允许其他事务查询表(除了SELECT…FOR UPDATE),但不更新表。
6、Exclusive Table Lock (X)
此锁是最严格的,禁止其他事务执行任何类型的DML语句或将任何类型的锁放在表上。
因为ORACLE要处理不同的并发功能,一旦处理不了那么多并发,就需要排队,为保证排队的公平就会出现各种优先级,因此衍生出很多锁模式,来支持不同业务层的并发需求。
在同一个session里面,你执行一个UPDATE语句,在表上有DML锁,那自己能去做DDL语句吗,比如DROP,因为是同一个session,所以不涉及并发,自己做一个update不提交,随后drop table也是可以的
行锁:0、6两类锁
表锁:0、1、2、3、4、5、6七类锁
0(none)
1(null)
2(RS)
3(RX)
4(S)
5(SRX)
6(X)
R是ROW行,S是SHARE共享,X是eXclusive排他,独占锁的意思
null 空
一般的SELECT,在表和行上都是0级锁1:null 空
1级锁有:Select有时会在v$locked_object出现。
Row-S 行共享(RS):共享表锁,sub share
2级锁有:Lock Row Share,create index online
>>表锁的情况下
locked_mode 2不影响后一个locked_mode 2、3、4、5的会话,如果后一个会话locked_mode为6,则后一个会话操作会提示ora-00054错误。
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
>>行锁的情况下
locked_mode 2对应行锁0级锁,不影响其他会话。
3:Row-X 行独占(RX):用于行的修改,sub exclusive
3级锁有:Insert, Update, Delete, Select for update,Lock Row Exclusive
>>表锁的情况下
locked_mode 3不影响后一个locked_mode 3的会话,但如果后一个会话locked_mode为4,5,6,则后一个会话操作会提示ora-00054错误。
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
>>行锁的情况下
locked_mode 3的表锁对应行锁6级锁,两个会话对同一行则影响。
4:Share 共享锁(S):阻止其他DML操作,share
4级锁有:Create Index, Lock Share
5:S/Row-X 共享行独占(SRX):阻止其他事务操作,share/sub exclusive
5级锁有:Lock Share Row Exclusive
具体来讲有主外键约束时update/delete ... ; 可能会产生4,5的锁。
6:exclusive 独占(X):独立访问使用,exclusive
6级锁有:Drop table, Drop Index, Alter table,Truncate table, Lock Exclusive。
相关推荐
- ai结合这3个开源架构图工具,画架构图不再纠结
-
工具介绍MermaidPlantUMLDiagramMermaid官网地址:Mermaid|Diagrammingandchartingtool只需要很简单的代码,就能够画出流程图、时序图、...
- 怎么用DeepSeek生成系统架构图?DS高级使用技巧分享!
-
系统架构图怎么画?熟悉系统架构图的人都知道,架构图是对现实系统的抽象归纳和概括,包含了多个层级和元素,譬如组件、连接、分层、边界、接口、协议和数据流等,而且层级元素间涉及逻辑关系,错综复杂,这对初次绘...
- 零基础3步画绝美国风美景!彩铅+马克笔就能画出诗意青绿山水
-
黛瓦连绵岁月悠,檐头一抹绿惊眸。不知何日化灵种,许是春风巧意留。沐雨经霜添秀色,凌虚向宇展清柔。此般青绿融残梦,静守时光意自幽。最近发现越来越多朋友开始尝试传统文化相关的手工创作,作为深耕绘画领域多年...
- 如何在PDF文档中绘制流程图?
-
教师在制作教学大纲时,如何绘制教学流程图以展示课程安排?高校行政人员,如何绘制流程图,来清晰地展示各项事务的办理流程?在实验课程中,如何绘制实验流程图,方便学生查看实验步骤和操作顺序?利用福昕高级PD...
- 儿童画教程|透视的魔法:教你画海底隧道
-
小朋友们,今天我们要学习一种特别的绘画技巧,它的名字叫“一点透视”。听起来是不是有点陌生?别担心,如果我举几个例子,你们一定会觉得特别熟悉!比如,当你站在一条笔直的马路上,远处的路看起来是不是越来越窄...
- 每天学习一个AI小技巧:如何用AI帮助我们绘制思维导图?
-
1.让DeepSeek生成某本书或其他内容的思维导图。例如,生成一张关于《控制习惯》的思维导图,内容尽可能详细,涉及到全书的所有核心内容。2.将DeepSeek生成思维导图的框架内容复制到ima...
- KIMI自动生成组织架构图,不要再傻傻的,一个一个的画了
-
今天跟大家分享下,我们如何使用KIMI来快速的制作组织架构图,相较于Deepseek,Kimi可以预览结果,还能直接下载架构图为图片,比Deepseek方便不少,每个AI工具都有自己的特点,大家不要死...
- 架构图怎么画?推荐7款专业的架构图绘制软件,支持AI画图
-
在绘制架构图这件事上,好用的工具能让我们事半功倍。今天就给大家介绍几款绘制架构图的工具,其中就不得不提到亿图图示。1、亿图图示亿图图示是一款功能强大的图形图表设计软件,非常适合用来绘制架构图。它提供了...
- 组织结构图的绘制方法
-
组织结构图是一种用于展示组织内部结构和层级关系的重要工具。它不仅能够帮助管理者清晰地了解各部门之间的关系,也能为员工提供明确的职责和汇报线。绘制一幅有效的组织结构图需要一定的方法和步骤。本文将详细介绍...
- 如何画一张架构图(内含知识图谱)
-
走过路过不要错过今日精彩话题,感谢大家的阅览,希望能获得您的点赞关注评论小编在此先祝大家天天开心,日进斗金!年年快乐!0102工作五年,我是做架构设计的,整天忙于画图开会,家里装修啥也不管,赚的...
- Google Play强制新规:应用必须适配16 KB页面大小
-
IT之家5月10日消息,科技媒体9to5Google昨日(5月9日)发布博文,报道称谷歌将于2025年11月1日开始,其GooglePlay应用商店将推行新规,针对...
- 谷歌拟将eSIM纳入Google One账号备份,Android换机有望更便捷
-
IT之家4月30日消息,现如今eSIM正逐渐引起用户关注,其相比实体SIM卡使用起来更为方便。但如果手机损坏,使用eSIM的用户往往难以自行恢复网络服务——因为eSIM无法...
- Google Play收款方式
-
GooglePlay是全球知名的应用商店,为开发者们提供了广阔的盈利空间。当开发者们在GooglePlay上发布的应用或游戏获得收入后,选择合适的收款方式能使收益最大化。下面将详细介绍Google...
- 谷歌推出Android跨设备共享功能,实现无缝切换与热点共享
-
来源:环球网【环球网科技综合报道】7月30日,据engadget等媒体消息,谷歌近日正式推出了其全新的跨设备共享功能,这一创新服务允许用户在手机、平板电脑和Chromebook之间即时共享热点,甚至...
- 要变天了?谷歌正式放弃安卓APK 采用AAB
-
近日外媒AndroidAuthority报道了一则重要消息,那就是谷歌正式宣布安卓APK被AAB取代,8月份开始所有在GooglePlay商店的应用,都需要采用AAB格式。据悉,AAB格式在201...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)