Dm数据库锁问题处理

模拟一个锁
Session1
SQL> create table t1(a int);
SQL> create table t2(a int);
SQL> insert into t1 values(1);
SQL> insert into t2 values(2);
SQL> commit;
SQL> update t1 set a=1000 where a=1;

Session2
SQL> update t2 set a=2000 where a=2;

Session1
SQL> update t2 set a=3000 where a=2;
session1一直处于等待状态:

以上为模拟的锁问题,下面是问题的处理过程

另开一个会话Session3
session3查询执行时间较长的sql:
SQL> SELECT *
2 FROM (SELECT sess_id,
3 sql_text,
4 datediff (ss, last_recv_time, SYSDATE) Y_EXETIME,
5 SF_GET_SESSION_SQL (SESS_ID) fullsql,
6 clnt_ip
7 FROM V$SESSIONS
8 WHERE STATE = ‘ACTIVE’)
9 WHERE Y_EXETIME >= 2;

在这里插入图片描述

查询当前数据库实例是否有阻塞
SELECT o.name, l.*
FROM v$lock l, sysobjects o
WHERE l.table_id = o.id AND blocked = 1;

在这里插入图片描述

从v$trx视图中查看事物锁的情况
SQL> select ID,MIN_ACTIVE_ID, STATUS from

v$trx;

行号 ID MIN_ACTIVE_ID STATUS


1 13048 13048 LOCK WAIT
2 13049 13048 ACTIVE
3 13050 13048 ACTIVE

已用时间: 3.454(毫秒). 执行号:613.

查询视图
v$lock

SQL> select ADDR,TRX_ID,LMODE,BLOCKED, TABLE_ID,ROW_IDX, TID from v$lock;
在这里插入图片描述

从以上查询可以看出,事物13048申请的锁,被事物13049持有。
或通过v$trxwait查看等待情况
SQL> select * from

v$trxwait;

行号 ID WAIT_FOR_ID WAIT_TIME


1 13048 13049 4881923

已用时间: 2.123(毫秒). 执行号:817.

解除事务13048的等待,提交或回滚或终止13049的事务。

SQL> sp_close_session(107353480);
DMSQL 过程已成功完成

查看session1的事务已执行成功
SQL> select * from t2;

行号 A


1 2000

已用时间: 2.764(毫秒). 执行号:408.

更多资讯请上达梦技术社区了解:https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
dm数据库MySQL数据库是两种不同的关系型数据库管理系统(RDBMS)。它们在以下几个方面有一些差异: 1. 历史和开发者:DM数据库是由中国科学院计算技术研究所开发的,而MySQL是由瑞典公司MySQL AB开发的。 2. 数据类型:DM数据库支持更多的数据类型,包括位图索引、空间数据类型、JSON数据类型等,而MySQL的数据类型相对较少。 3. 存储引擎:DM数据库使用自家开发的存储引擎,支持事务处理、并发控制和ACID(原子性、一致性、隔离性和持久性)特性。而MySQL具有多个存储引擎可供选择,如InnoDB、MyISAM等。 4. 分区表功能:DM数据库提供了分区表功能,可以将大表分割为更小的片段,以提高查询性能和管理效率。MySQL在某些存储引擎上也支持分区表,但不是所有存储引擎都支持。 5. SQL语法:虽然两者都符合SQL标准,但在某些方面存在细微差异,如DM数据库对日期和时间函数的支持更丰富。 6. 性能和扩展性:DM数据库处理大规模并发访问时表现较好,并且支持分布式数据库集群。MySQL在小规模应用和简单查询方面表现良好,但在处理大规模数据和高并发负载时可能需要更多的优化和调整。 总的来说,DM数据库MySQL数据库都是强大的关系型数据库管理系统,适用于不同的应用场景和需求。选择哪个取决于具体的业务需求、性能要求和开发团队的偏好。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值