首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Oracle中的死锁

Oracle中的死锁
EN

Stack Overflow用户
提问于 2014-03-03 18:09:40
回答 2查看 659关注 0票数 0

在Oracle中运行以下查询时出现死锁

代码语言:javascript
运行
复制
update MYTABLE 
   set COLUMN1 = COLUMN1 + 589 
 where COLUMN1 >= 7988 
   and COLUMN1 <= 7988

update MYTABLE 
   set COLUMN1 = COLUMN1 + 660 
 where COLUMN1 >= 7840

当两个查询都在两个独立的事务中运行时,为什么我会得到一个死锁?我的观点是,当隔离设置为READCOMMITTED时,第二个查询将一直等到第一个查询完成其事务,对吗?

有什么提示可以避免死锁吗?

注意:COLUMN1不是该表中的主键,但应用程序会确保没有重复项。

EN

Stack Overflow用户

发布于 2014-03-03 18:15:38

由于两个窗口都是重叠的,我认为可能存在问题。Oracle为两个查询锁定相同的块,因此在同时执行时会出现问题。

另外,检查SO上的answer in this question

通过检查dba_lock表来检查是否发生了锁。请参见文档here

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22143806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档