oracle中update锁记录,oracle进行update时对行加锁的测试
最近正好学习到锁,网上都说在更新一些行之前要把这些行全部锁起来后在更新。比如说,要更新10000行,就会先把这10000
行加行锁,然后更新。本人进行了一下实验
session 1:
created table p (id int);
insert into p values (1);
insert into p values (2);
insert into p values (3);
insert into p values (4);
commit;
session 2:
delete from p where id = 4;
session 3:
select addr ,used_ublk from v$transaction;
ADDR USED_UBLK
-------- ----------
333B5938 1
选中一条结果,说明session 2中用掉了回滚段中的一个block。
接着返回session 1:
update p set id = 10 where id <= 4;
发现session 1被堵塞
返回session 3 接着运行那条语句
ADDR USED_UBLK ADDR USED_UBLK
-------- ---------- -------- ----------
3338CE20 1 333B5938 1 //上次的
333B5938 1
发现比上次多了一个3338CE20,那多出的这条只能是session 1的了,发现session 1也用了一块回滚段的块,那是不是
可以说明session 1已经进行更新了?但是session 1正在被堵塞,那么可不可以说明:oracle在更新的时候并不是把想要
更新的行全部加锁之后在进行更新,而是一边进行加锁一边进行更新??
回滚全部后
session 2:
delete from p set id = 1;//id为1
已删除 1 行。
session 3:
addr ,used_ublk from v$transaction;
ADDR USED_UBLK
-------- ----------
333B5938 1
session 1:
update p set id = 10 where id <= 4;
被堵塞
session 3:
ADDR USED_UBLK
-------- ----------
333B5938 1
没有出现session 1的条目,只有session 2,因为session 2把id为1的加锁了,session 1从一开始就被堵塞,所以一行
也没更新。
本人初学者,不知道这么理解对不对,请大家指点一下~~
oracle中update锁记录,oracle进行update时对行加锁的测试相关推荐
- oracle锁类型tx,Oracle中的锁类型
Oracle中的锁类型主要分以下3种: DML锁(DML lock):DML 代表数据操纵语言(Data Manipulation Language).一般来讲,表示select,insert,upd ...
- Oracle一张表写多个触发器,详解oracle中通过触发器记录每个语句影响总行数
详解oracle中通过触发器记录每个语句影响总行数 需求产生: 业务系统中,有一步"抽数"流程,就是把一些数据从其它服务器同步到本库的目标表.这个过程有可能 多人同时抽数,互相影响 ...
- oracle中的guid,在Oracle中使用Guid
在Oracle中使用Guid 在Oracle中使用Guid 在Oracle中可以用SYS_GUID()来生成一个guid,相当于msSql中的newid(). 在Oracle9i和Oracle 10g ...
- oracle中如何一个逗号分隔的字符串分隔成多行
oracle中如何一个逗号分隔的字符串分隔成多行? 最近开发了一个功能,为了方便查询,某个表中的某个字段存成了逗号分隔的字符串 然后,在进行表关联查询时,需要将字符串分隔成多行, but,不记得怎么写 ...
- oracle数据库insert into,oracle中insert into用法 oracle中insert如何带条件添加数据?
oracle insert into 脚本怎么写 INSE INTO BOOK(bookid,name,price) VALUES('100123','oracle ',54); 或者 INSE IN ...
- oracle中nowait怎么用,oracle中UPDATE nowait 的使用方法介绍
oracle中UPDATE nowait 的使用方法介绍 1.UPDATE nowait 应用以下场景:查询某条数据,并对其开启数据库事务.如果查询的当前数据没有加锁,则正确返回结果,并对当前数据加锁 ...
- oracle里面的锁,基于oracle中锁的深入理解
ORACLE里锁有以下几种模式:0:none 1:null 空 2:Row-S 行共享(RS):共享表锁 3:Row-X 行专用(RX):用于行的修改 4:Share 共享锁(S):阻止其他DML操作 ...
- oracle查看dml锁表,【lock】我所认识的Oracle中的锁,DML锁、DDL锁、闩和内部锁。...
这个问题很简单,你一定对锁有一个认识,但你未必对锁有一个明确的定义. 官方文档这样描述:Locks are mechanisms that prevent destructive interactio ...
- oracle中栓锁,oracle 闩锁介绍
oracle通过闩锁(latch)和锁定(lock)来实现资源的串行化.闩锁和锁定相同点是:都是用于实现保护数据的完整与准确性.不同点是:闩锁是 一个低级别,轻量级的锁,获得和释放的速度非常快.而锁定 ...
最新文章
- Python关于%matplotlib inline
- SAP Basis 日常管理
- c语言ad采样程序思路,单片机AD采样程序及其寄存器讲解
- ITK:使图像的一部分透明化
- ISP 图像传感器camera原理
- 终端乱码的终极解决方案
- 树的直径(51Nod-2602)
- 什么是devops开发运维_为什么假设驱动的开发是DevOps的关键
- 嘉年华回顾丨 周正中(德哥)谈谈PG怎么这么火
- 1.4信息系统基础-软件构件技术知识
- php fetch mode,odbc_fetch_into
- oracle日期基本数据,oracle日期时间函数总结
- 最新sql 2008安装说明 以及 重设sql server 2008 R2的登录密码
- 自动驾驶—高精度地图or人工智能or其他
- nios IIcommand shell 烧录
- java since,javadoc:@version和@since
- python turtle后退_Turbot与python教程-实现后退
- Sping中怎么处理@Bean注解bean同名的问题
- 滴滴顺风车女乘客遇害;华为法律应对澳 5G 禁令;苹果研发新背板技术|极客头条...
- iOS 图片捏合放大缩小 点击放大缩小
热门文章
- 浮点数的加减计算总结
- Underfull hbox (badness 10000) in paragraph at lines 83--86
- IEEE写作模板获取
- PAT 1059 Prime Factors[难]
- 前端跨域问题及解决方案
- eclipse下的tomcat内存设置大小(转)
- Ms sql pivot unpivot
- Lua1.0 代码分析 table.c
- 【Android 界面效果43】Android LayoutInflater的inflate方法中attachToRoot的作用
- Wayland 1.0 发布,图形服务器