修改2张表不同SESSION相互持有记录引发的死锁
来源:互联网 发布:编程数学 编辑:程序博客网 时间:2024/04/30 10:47
死锁产生的原因:如果有两个会话,每个会话都持有另一个会话想要的资源,此时就会发生死锁。2张表不同SESSION持有不同记录SQL> create table t1(id int);Table created.SQL> create table t2(id int);Table created.SQL> select * from t1;ID---------- 1 2SQL> select * from t2;ID---------- 2 1开始测试:SESSION 1:SQL> select * from v$mystat where rownum<2; SID STATISTIC# VALUE---------- ---------- ----------24 0 0SESSION 2:SQL> select * from v$mystat where rownum<2; SID STATISTIC# VALUE---------- ---------- ----------25 0 0SESSION 1执行:SQL> update t1 set id=100 where id=1;1 row updated.SESSION 2 执行:SQL> update t2 set id=100 where id=1;1 row updated.SESSION 1 继续执行:SQL> update t2 set id=100 where id=1;此时SESSION 1 HANGSESSION 2继续执行:SQL> update t1 set id=100 where id=1;此时SESSION 1出现:SQL> update t2 set id=100 where id=1;update t2 set id=100 where id=1 *ERROR at line 1:ORA-00060: deadlock detected while waiting for resource--------------------------------------------------------------------SESSION 1执行:SQL> update t1 set id=100 where id=1;1 row updated.SQL> update t2 set id=100 where id=1;update t2 set id=100 where id=1 *ERROR at line 1:ORA-00060: deadlock detected while waiting for resourceSESSION 2 执行:SQL> update t2 set id=100 where id=1;1 row updated.SQL> update t1 set id=100 where id=1;查看trace日志:session 25: sid: 25 ser: 16 audsid: 1450028 user: 91/TEST flags: 0x45 pid: 23 O/S info: user: oracle, term: UNKNOWN, ospid: 5732 image: oracle@june (TNS V1-V3) client details: O/S info: user: oracle, term: pts/3, ospid: 5731 machine: june program: sqlplus@june (TNS V1-V3) application name: SQL*Plus, hash value=3669949024 current SQL: update t1 set id=100 where id=1 ----- End of information for the OTHER waiting sessions ----- Information for THIS session: ----- Current SQL Statement for this session (sql_id=75ag6bf3qxyh7) -----update t2 set id=100 where id=1
0 0
- 修改2张表不同SESSION相互持有记录引发的死锁
- 同一张表不同SESSION相互持有对方记录引发的死锁
- oracle 查出2张表不同的记录(即A表有,B表却没有)
- mysql 2个sql更新不同记录但死锁
- Socket引发的死锁问题。
- Bitmap index引发的死锁
- index_merge引发的死锁排查
- index_merge引发的死锁排查
- index_merge引发的死锁排查
- index_merge引发的死锁排查
- 两张不同表结构的翻页
- 两个事物 update同一张表出现的死锁问题
- 两张结构一样的表如何找不同的记录:UNION - UNION ALL - INTERSECT - MINUS / EXCEPT
- java两个类相互持有引用的小问题
- 同一个服务器上的不同项目要注意session的死锁问题
- MySql插入删除引发的数据库死锁
- openssl中libeay32!RAND_poll引发的死锁
- 位图索引引发的阻塞与死锁
- poj 1837 Balance (01背包)
- hdu 1754 I Hate It(树状数组 | 线段树)
- 10个调试和排错的小建议
- 【命令模式-Command】
- 【转】学习鞭策及方向指南
- 修改2张表不同SESSION相互持有记录引发的死锁
- “文件或目录损坏且无法读取”的解决方法
- oc的set方法内存管理
- ssh只允许指定的用户登陆
- <MEMORY>Project Euler NO38
- 程序员和编码员之间的区别
- Vijos P1055 奶牛浴场
- 线程中的小知识点
- <算法导论>学习笔记(2)--第2章 算法基础