[达梦]达梦数据库查看锁以及解锁
[达梦]达梦数据库查看锁以及解锁
1、查看锁
为了方便用户查看当前系统中锁的状态,DM 数据库专门提供了一个 V$LOCK 动态视图。 通过该视图,用户可以查看到系统当前所有锁的详细信息,如锁的内存地址、所属事务 ID、 锁类型、锁模式等。用户可以通过执行如下语句查看锁信息:
SELECT * FROM V$LOCK;
序号 | 列 | 数据类型 | 说明 |
---|---|---|---|
1 | ADDR | BIGINT | 锁地址 |
2 | TRX_ID | BIGINT | 所属事务 ID |
3 | LTYPE | VARCHAR(10) | 锁类型:TID 锁、对象锁 |
4 | LMODE | CHAR(2) | 锁模式:S 锁、X 锁、IX 锁、IS 锁 |
5 | BLOCKED | INTEGER | 是否阻塞 |
6 | TABLE_ID | INTEGER | 对于对象锁,表示表对象或字典对象的 ID;对于 TID 锁,表示封锁 记录对应的表 ID。-1 表示事务启动封锁自身的 TID |
7 | ROW_IDX | BIGINT TID | 锁封锁记录行信息。-1 表示事务启动封锁自身的 TID |
8 | TID | BIGINT | TID 锁对象事务 ID |
2、会话信息
select * from V$SESSIONS
显示会话的具体信息,如执行的 sql 语句、主库名、当前会话状态、用户名等等
主要字段说明:
序号 | 列 | 数据类型 | 说明 |
---|---|---|---|
1 | SESS_ID | BIGINT | 会话 ID |
2 | SESS_SEQ | INTEGER | 会话序列号,用来唯一标识会话 |
3 | SQL_TEXT | VARCHAR(1000) | 取 sql 的头 1000 个字符 |
4 | STATE | VARCHAR(8) | 会话状态。共 6 种状态:CREATE 创建、STARTUP 启动、IDLE 空闲、ACTIVE 活动、WAIT 等待、UNKNOWN 未知 |
5 | TRX_ID | BIGINT | 事务 id |
6 | CREATE_TIME | DATETIME | 会话创建时间 |
3、查询锁
select SESS_ID,SESS_SEQ,SQL_TEXT,STATE, CREATE_TIME from v$sessions where trx_id in (select trx_id from V$LOCK) and SQL_TEXT like '%update%';
4、关闭会话
SP_CLOSE_SESSION(会话 ID);
停止一个活动的会话,会话 ID 可通过 V\(SESSIONS 查询,DM 系统创建的内 部 SESSION(PORT_TYPE = 12,但 CONNECTED = 1 的 SESSION)也可通过 V\)SESSIONS 查询到.
好学若饥,谦卑若愚