文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

达梦8 死锁模拟

2024-04-02 19:55

关注

1.创建两个简单的表t1_deadlock和t2_deadlock,每个表中仅仅包含一个字段a


SQL> create table t1_deadlock (a int);

操作已执行
已用时间: 6.906(毫秒). 执行号:23.
SQL> create table t2_deadlock (a int);
操作已执行
已用时间: 3.168(毫秒). 执行号:24.

2.每张表中仅初始化一条数据


SQL> create table t2_deadlock (a int);

操作已执行
已用时间: 3.168(毫秒). 执行号:24.
SQL> insert into t1_deadlock values (1);
影响行数 1
已用时间: 0.566(毫秒). 执行号:25.
SQL> insert into t2_deadlock values (2);
影响行数 1
已用时间: 0.803(毫秒). 执行号:26.
SQL> commit;
操作已执行
已用时间: 1.057(毫秒). 执行号:27.

3.在第一个会话session1中更新表t1_deadlock中的记录“1”为“1000”,不进行提交


SQL> update t1_deadlock set a = 1000 where a = 1;

影响行数 1
已用时间: 1.608(毫秒). 执行号:28.

4.在第二个会话session2中更新表t2_deadlock中的记录“2”为“2000”,不进行提交


SQL> update t2_deadlock set a = 2000 where a = 2;

影响行数 1
已用时间: 3.345(毫秒). 执行号:29.

5.此时,没有任何问题发生。OK,现在注意一下下面的现象,我们再回到会话session1中,更新t2_deadlock的记录


SQL> update t2_deadlock set a = 2000 where a = 2;

这里出现了“锁等待”(“阻塞”)的现象,原因很简单,因为在session2中已经对这条数据执行过这个操作,在session2中已经对该行加了行级锁。

注意,这里是“锁等待”,不是“死锁”,注意这两个概念的区别!

6.我们关注的“死锁”马上就要隆重出场了:在会话session2中,更新t1_deadlock的记录


SQL> update t1_deadlock set a = 1000 where a = 1;

update t1_deadlock set a = 1000 where a = 1;
[-6403]:死锁.
已用时间: 310.980(毫秒). 执行号:0.

7.以上种种现象说明什么?

说明: DM对于“死锁”是会做自动处理的,而不是不闻不问。

8.总结

死锁与阻塞的不同之处在于死锁包括两个或者多个已阻塞事务,它们之间形成了等待环,每个都等待其他事务释放锁。例如事务1给表T1上了排他锁,第二个事务给表T2上了排他锁,此时事务1请求T2的排他锁,就会处于等待状态,被阻塞。若此时T2再请求表T1的排他锁,则T2也处于阻塞状态。此时这两个事务发生死锁,DM数据库会选择牺牲掉其中一个事务。

参考:《DM8系统管理员手册》19.8 锁等待与死锁检测

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯