原文: http://www.dameng.com/teachers_view.aspx?TypeId=183&Id=911&FId=t26:183:26

大家知道,达梦数据库支持多用户并发访问、修改数据。在实际工作中,有可能出现多个事务同时访问、修改相同数据的情况,当一个事务正在占用某个资源的锁,此时另一个事务正在请求这个资源上与第一个锁相冲突的锁类型时,就会发生阻塞。此时,被阻塞的事务将一直挂起,直到持有锁的事务放弃锁定的资源为止。本文就将给大家介绍如何使用对应的动态性能视图查看阻塞以及如何解决阻塞。

本文实验环境:演示环境:DM Database Server x64 V7.1.6.46-Build(2018.02.08-89107)ENT

1、创建测试表并插入数据

建表:

2.在T1上面生成TID锁

执行update操作并且不提交,具体操作如下:

3.开启新会话

3.1 在新会话下执行select操作

可以看到,由于MVCC的多版本机制,写不会阻塞读,所以select操作可以正常进行。但是前面的事务没有提交,所以查出来的结果还是旧版本的值,也就是update之前的值。

3.2 在新会话下执行DML操作

此时,由于delete操作需要加上与之前update操作相同类型的锁,所以阻塞发生,当前事务被挂起。

4.阻塞的排查

当阻塞发生时,我们可以通过v$lock视图查到当前数据库中锁的状态

结果中我们可以看到,事务2399被阻塞了,阻塞他的事务为2393,

同样我们也可以通过V$TRXWAIT视图查找谁阻塞谁,

得出同样的结果,ID为2399的事务正在等待ID为2393的事务,等待时间是1071599毫秒。

接下来,通过V$SESSIONS视图查找两个事务对应的会话

可以得到两个事务对应的会话ID和当前执行SQL语句,可以知道是哪些SQL语句产生的阻塞。

5.阻塞的解决方法

根据需求,可以有两种解决方案。

5.1提交或回滚产生阻塞的事务。

根据上文,我们可知产生阻塞的事务会话ID为2410147992。此时,我们只需要在该会话下提交或回滚事务,锁自然会被释放,阻塞解决。

5.2关闭产生阻塞的会话

同样,我们也可以使用系统过程SP_CLOSE_SESSION(SESS_ID)来关闭对应的会话,具体使用方法如下。

此时,锁被释放,delete操作也可以顺利进行下去。

关于达梦数据库锁表问题 本小白费了一下午时间又偶然间看到的文章,帮了大忙谢谢!相关推荐

  1. DM达梦数据库删除表时提示锁超时的解决方法

    DM 达梦数据库删除表时提示锁超时的问题 1. 问题描述 达梦数据库删除表时,删除失败,提示的报错信息是 锁超时 2. 解决方法 查询所删除表对应的SESS_ID,sql语句如下: select a. ...

  2. 达梦数据库DM8-多表连接查询

    达梦数据库DM8-多表连接查询 系列文章目录 本文环境 1.达梦数据库连接查询介绍 2.交叉连接(cross join)迪卡集 2.1 无过滤条件 2.1 有过滤条件 3.自然连接 4.join... ...

  3. SQL达梦数据库复制表数据和表结构[当前模式下]

    达梦数据库复制表数据和表结构sql: 语法:create table 新表表名 as select * from 老表表名 示例: create table "SZFMIMP".& ...

  4. 达梦数据库删除用户_DM 达梦数据库 删除表空间 [-3412]:试图删除已经使用的表空间. 错误 处理方法...

    达梦数据库drop 表空间时报如下错误: [dave@www.cndba.cn ~]$ disql SYSDBA/SYSDBA@127.0.0.1:6236 服务器[127.0.0.1:6236]:处 ...

  5. 达梦数据库删除表提示锁超时问题

    1.问题描述 在执行删除表操作的时候,提示锁超时问题: 2.问题分析 经分析,出现该问题的一般是该表还有其他用户在进行增删改操作,可以通过查看阻塞会话.可以通过查杀阻塞会话后再进行删除表的操作. 3. ...

  6. 达梦数据库删除用户_达梦数据库的表空间及用户管理

    一.达梦数据库表空间的管理 1.达梦数据库表空间介绍 Select tablespace_name from dba_tablespace; 1)SYSTEM表空间--> 系统表空间有很多的数据 ...

  7. 达梦数据库创建表空间

    达梦数据库的数据是存储在表空间下的. 创建表空间时需要指定表空间名和拥有的数据文件列表. 表空间的创建有两种方式. 一. 通过manager图形化界面创建 1.进入安装目录tool目录下,通过./ma ...

  8. 达梦数据库创建表空间和用户

    达梦数据库默认使用SYSDBA用户和默认表空间进行数据库操作.但是对于业务系统开发来说,使用自定义普通表空间和用户保证数据的区分. 表空间:表空间就如同创建了一个文件夹.创建一个单独的文件夹给你来专门 ...

  9. 【达梦数据库】表空间

    文章目录 前言 1 表空间介绍 2 表空间操作 3 页大小与表空间 4 页大小对表空间的影响测试 总结 前言 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库.所有的数据库对象都存放在指定的表空 ...

最新文章

  1. [转] 在Mac上搭建React Native开发环境
  2. python logging模块使用_python logging模块使用
  3. 理解、学习与使用Java中的Optional
  4. C# 网络编程之使用Socket类Send、Receive方法的同步通讯
  5. 需求分析——掌握和使用UML建模语言顺序图模型
  6. C语言素数判断算法分析
  7. 用力和应变片计算弹性模量_电阻应变片粘贴及弹性模量的测定实验报告徐姗.doc...
  8. 机器学习——BP神经网络
  9. Spring IoC 详解(下篇)
  10. c语言学生成绩及格率,c语言百分制输入学生的考试分数统计学生及格率
  11. 隆马斯克最喜欢的面试问题 【翻译】
  12. 神棍传奇(cocos-jsV3.6)
  13. 【商业画布】魏朱画布
  14. 高数下|级数4|手写笔记(绝对收敛与条件收敛)
  15. 量子计算机有生之年,对话哈佛大学教授Lukin:量子计算将在我们有生之年普及!...
  16. pyepics --Auto-saving: simple save/restore PVs
  17. 超详细零信任市场解读
  18. C++知识点打结(一)
  19. BHQ-3 amine,1661064-89-6可在430nm至730nm范围内猝灭所有普通荧光团
  20. 黑金AX7350注意事项

热门文章

  1. 惊人数字:中国宽带费是韩国的124倍
  2. 模板的模板参数与非类型模板参数
  3. http 传输 加号乱码问题
  4. 2015-1-11 【erlang】erl中的make -make 参数 以及 Emakefile
  5. 如何策划抖音广告?提升营销推广效果
  6. 娃娃机项目框架html,移动端抓娃娃机
  7. 模仿酷狗7(Kugou7)界面源码
  8. 脑电图机器学习笔记(二):SVM 脑电波原信号和傅立叶变换的 癫痫信号检测
  9. 淘宝直通车关键词拖价怎么做?大神导航,一个神奇的网站,从此开启大神之路!
  10. 关于485通讯(不扯蛋)