问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
Oracle能进行锁升级吗?
Oracle从来不会进行锁升级(lock escalation),但它会执行锁转换(lock conversion)。
Oracle会尽可能地尝试使用最低级别的锁,如有必要,再把这个锁转换为一个受限更多的级别。例如,如果用FOR UPDATE子句从表中选择一行,就会创建两个锁。一个锁放在所选的行上(这是一个排他锁,其他任何人都不能再以排他的模式锁定这一行);另一个锁是ROW SHARE TABLE锁,放在表本身上,这个锁能防止其他会话在表上再放置一个排他锁。这样能相应地防止这些这些会话改变表的结构。另一个会话可以修改这个表中的任何其他行,而不会有冲突。尽管表中有一行被锁住,但还是能在表上成功地执行尽可能多的命令。
评论
有用 9
墨值悬赏