社区
Oracle
帖子详情
【讨论贴】oracle update语句更新重启动问题
quanjunchuji
2018-06-11 11:57:27
加精
新建表
-----实验1
--实验2
实验2把insert语句的内容也更新了!!!是因为实验2 有重启动更新
为什么 实验1 没有重启动更新而实验2有?
实验1中session1在时间6 时 根据当前读拿到 值=8,而一致读的值=3,当前读和一致读不相等,为什么没有发生更新重启动?
...全文
35692
38
打赏
收藏
【讨论贴】oracle update语句更新重启动问题
新建表 -----实验1 --实验2 实验2把insert语句的内容也更新了!!!是因为实验2 有重启动更新 为什么 实验1 没有重启动更新而实验2有? 实验1中session1在时间6 时 根据当前读拿到 值=8,而一致读的值=3,当前读和一致读不相等,为什么没有发生更新重启动?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
38 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
冷冷的雾海
2020-11-12
打赏
举报
回复
只是想要翻身的小咸鱼
2020-10-28
打赏
举报
回复
学习了。三人行,必有我师
守护太阳守护你
2020-08-21
打赏
举报
回复
瞎说,session1的update根本不会阻塞session2里的update!
m0_46797617
2020-07-27
打赏
举报
回复
我也觉得这个好难学,上面的各个都是大神
zhanglin1934
2020-07-20
打赏
举报
回复
Oracle 好难学,正在努力学习中!!!
Mr.Rom
2020-07-07
打赏
举报
回复
我认为可以从范围锁和表级锁来看,没有加where条件的应该是表级排它锁 导致所有的dml语句都阻塞,但是加了where以后是个范围锁 只在where>0的范围行上加锁,导致insert插入生效,然后提交更新范围再次更新 导致0.5更新
bluesky_ql
2020-04-25
打赏
举报
回复
https://blog.csdn.net/enmotech/article/details/81058736,我觉得杨长老解释的很对啊,这帖子怎么还挂在这儿?
逢桥夜泊
2020-04-08
打赏
举报
回复
session2 执行的时候要锁了啊。
sjwl_liang
2020-03-18
打赏
举报
回复
事务隔离级别的问题
qq_25385655
2020-03-12
打赏
举报
回复
我觉得是你把本应该session3的insert 语句执行在了 session1 .
weixin_45365298
2020-02-14
打赏
举报
回复
实验二应该是没问题的,而实验1 我觉得可能你insert语句没有及时提交所致。建议再作次实验1,验证下。
sjwl_liang
2020-02-03
打赏
举报
回复
事务隔离级别问题
fangcao5
2020-01-10
打赏
举报
回复
session2中的语句没有写commit,所以符合条件的行都被锁定,UPDATE是行锁定。session1中的语句没有限制条件,所以该语句要访问session2中的行,所以会提示不能执行。session3中语句是插入语句,与session1中销定的行不冲突,所以能执行
微风轻轻 起
2020-01-10
打赏
举报
回复
学习了。三人行,必有我师
Valerie00
2019-11-27
打赏
举报
回复
这个就是oracle事务隔离引起的 oracle默认事务隔离级别是读提交,也就是说只有提交的数据才会去读
zy18755122285
2019-11-25
打赏
举报
回复
当 UPDATE 操作包含了 WHERE 条件,那么这个查询的结果要满足 WHERE 定义的查询一致性,当更新发现一致性不满足的情况下,就会触发更新重启动。 而对于不包含 WHERE 条件或包含 WHERE 条件但是该条件与表查询无关的情况,更新只关注 UPDATE 语句发出时刻的数据,不再考虑整体更新结果的一致性问题。
duanll5543
2019-09-26
打赏
举报
回复
根本就没看明白
kaixing1218
2019-09-09
打赏
举报
回复
这种情况在程序里面应该是不允许产生的
kaixing1218
2019-09-09
打赏
举报
回复
试了一下负数, 应该是和条件有关,但是是什么原理还是不明白!
洪武哥
2019-07-25
打赏
举报
回复
本人不够专业,想法极端,执行实验一时,可否认为是id in(1,2,3),实验2可否认为是条件为映射,当映射发生变化时,条件随之改变。在实验一种加入id=4是否会发生变化呢。期待
加载更多回复(18)
Oracle
语句
重启动
Oracle
在执行DML
语句
时,会用到两种不同的方式去读取数据块: 1. 一致读:在“找到”需要修改的数据行时,会采用consistent read 2. 当前读:在“获取”数据块来实际
更新
数据行时,会采用current read 一、
重启动
发生的原因或场景: where条件读取时采用一致读和
更新
时采取当前读版本不一致时就会发生
重启动
。 如:
update
te
Oracle
中
更新
语句
的
重启动
Oracle
中
更新
语句
的
重启动
考虑一个简单的
update
语句
:
update
test set x=1 where y=1; 它是分为两步: 1. 根据where条件找出表中满足
更新
条件的数据行; 2.
更新
步骤1中所找出的数据行的x值。 假如test表很大,
update
要执行好几分钟,而且在步骤1期间有人将某一行的y值改为2并提交了,那么在步骤2中,这个y=2的行是...
oralce数据库管理-详细解析
oracle
数据库
update
整体执行过程
oracle
-1条updata的故事 客户端SQL Plus请求连接,监听接受客户端的TCP连接,并获取客户端发过来的TNS数据包。 监听进程打开用于与子进程通信的管道,同时fork一个子进程,称为“监听子进程1”的子进程,然后监听进程一直等待,直到这个“监听子进程1”结束。 监听子进程1 Fork出子进程2。 完成上面一步,子进程1马上退出并结束子进程1。 子进程2收集本进程所在的主机...
oracle
并行parallel
update
两张表_
oracle
parallel 并行 设置 理解
引子:以前一直没太关注
oracle
并行这个特性。前几天一个兄弟碰到的一个
问题
,才让我觉得这个东西还是有很多需要注意的地方,有必要仔细熟悉下。其实碰到的
问题
不复杂:类似如下的一条
语句
:insert into xxxx select /+parallel(a)/ * from xxx a;数据量大约在75G左右,这位兄弟从上午跑到下午还没跑完,过来问我咋回事,说平常2hrs能跑完的东西跑了好几个小时还...
Oracle
常用
语句
大全
一、基础必会篇 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份 sql server — 创建 备份数据的 device USE master EXEC sp_addumpdevice ‘disk’, ‘testBack’, ‘c:\mssql7backup\MyNwind_1.dat...
Oracle
17,089
社区成员
55,237
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章