Oracle的读操作会发生锁等待么?

kanlianhui 2014-03-06 09:41:23
Oracle一个事务中的的读操作会发生锁等待么?为什么?
...全文
277 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
流浪川 2014-03-07
  • 打赏
  • 举报
回复
修改时锁不会影响其他session查询。。 只不过查询出来的是修改前的数据。。 但是另一个session不能对其进行修改。。因为已经被锁定。。
_拙计 2014-03-07
  • 打赏
  • 举报
回复
引用 6 楼 kanlianhui 的回复:
[quote=引用 4 楼 hidanger521 的回复:] oracle中没有读锁,你的意思是不是想一个人在读,其他人就不能再读了,还是不能其他操作了。。
一个事务T在修改一条记录的时候(T1未提交)其他事务T2对这条记录进行读取操作,这时候T2是不会等待T1事务完成的吧。ORACLE不会读脏数据所以T2的读应该不会等待而直接返回T1事务修改之前的数据。 应该是这样子对吧?[/quote]这个是的 难道你是这个意思么 囧囧,T1未提交,T2读肯定是没问题的,不能修改T1被锁定的记录
kanlianhui 2014-03-07
  • 打赏
  • 举报
回复
引用 4 楼 hidanger521 的回复:
oracle中没有读锁,你的意思是不是想一个人在读,其他人就不能再读了,还是不能其他操作了。。
一个事务T在修改一条记录的时候(T1未提交)其他事务T2对这条记录进行读取操作,这时候T2是不会等待T1事务完成的吧。ORACLE不会读脏数据所以T2的读应该不会等待而直接返回T1事务修改之前的数据。 应该是这样子对吧?
_拙计 2014-03-07
  • 打赏
  • 举报
回复
引用 3 楼 kanlianhui 的回复:
[quote=引用 2 楼 lu010610 的回复:] 读锁,需要写过程控制,不然是不会产生读锁的
请问“需要写过程控制”这句话怎么理解,能否举个例子么?多谢了~[/quote]http://www.itpub.net/thread-995175-1-1.html
流浪川 2014-03-07
  • 打赏
  • 举报
回复
oracle中没有读锁,你的意思是不是想一个人在读,其他人就不能再读了,还是不能其他操作了。。
kanlianhui 2014-03-07
  • 打赏
  • 举报
回复
引用 2 楼 lu010610 的回复:
读锁,需要写过程控制,不然是不会产生读锁的
请问“需要写过程控制”这句话怎么理解,能否举个例子么?多谢了~
_拙计 2014-03-07
  • 打赏
  • 举报
回复
读锁,需要写过程控制,不然是不会产生读锁的
gleiyu 2014-03-07
  • 打赏
  • 举报
回复
等待锁:一个事务对一个数据表进行ddl或者dml操作时,系统会对该表加上表级的排它锁,这时候其他事务对该表进行操作的时候会等待这个事务提交或回滚后才能继续操作。 在两个SQL窗口先后对数据库中的一条语句进行更新操作不提交事务。后一个执行的就回处于等待状态。这时候提交前一个事务,两个更新操作都提示完成。 分别在两个窗口查询该表,会发现同一条记录显示的结果不同,再打开一个SQL窗口查询到的结果和是第一个事务提交后的结果。也就是读操作不会发生等待锁。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧