TDSQL Boundless TDSTORE_PESSIMISTIC_DEADLOCK_DETAIL_INFO

在执行死锁检测的节点上查询 TDSTORE_PESSIMISTIC_DEADLOCK_DETAIL_INFO 系统表,可以得到历史所有死锁中,构成死锁环的事务详细等待关系:包括申请锁和阻塞的事务 ID,申请和阻塞的锁范围,造成该等待关系的 SQL 运行在哪个节点上,造成该等待关系的事务正在执行的 SQL 语句。

相关产品
TDSQL Boundless 产品页,含版本规格、价格与购买入口。

一、支持版本

适用于 TDSQL Boundless V21.2.0 及以上版本。

各版本变更如下:

·V21.2.0:首次引入 TDSTORE_PESSIMISTIC_DEADLOCK_DETAIL_INFO 系统视图。

·V21.6.1.0:timestamp 字段改名为 occurred_at,类型从 varchar 改为 timestamp。

二、字段说明

字段名 类型 说明
rollback_trans_id bigint unsigned 本死锁环中,被回滚的事务的 ID。
requesting_node varchar(64) 锁等待关系中,执行申请悲观锁的事务的 SQLEngine 节点名称。
requesting_trans_id bigint unsigned 锁等待关系中,申请悲观锁的事务的 ID。
blocking_trans_id bigint unsigned 锁等待关系中,已经持有悲观锁的事务的 ID。
req_lock_range varchar(64) 锁等待关系中,申请悲观锁的事务申请的锁范围。
blk_lock_range varchar(64) 锁等待关系中,已经持有悲观锁的事务此时持有的锁范围。
occurred_at timestamp(3) 本死锁环对应的死锁事件的发生时间。
requesting_sql varchar(128) 锁等待关系中,申请悲观锁的事务此时正在执行的 SQL 语句。

三、示例

·输出示例:

tdsql> SELECT * FROM information_schema.tdstore_pessimistic_deadlock_detail_info \\G*************************** 1. row *************************** rollback_trans_id: 29468596191101374 requesting_node: node-tdsql3-xxxx-001requesting_trans_id: 29468595838780035 blocking_trans_id: 29468595939442912 req_lock_range: 000027308000000F blk_lock_range: 000027308000000F occurred_at: 2026-04-28 15:31:08.555 requesting_sql: SELECT * FROM deadlock_test WHERE id = 15 FOR UPDATE*************************** 2. row *************************** rollback_trans_id: 29468596191101374 requesting_node: node-tdsql3-xxxx-002requesting_trans_id: 29468595939442912 blocking_trans_id: 29468596191101374 req_lock_range: [0000273080000010,0000273080000015) blk_lock_range: [0000273080000010,0000273080000015) occurred_at: 2026-04-28 15:31:08.555 requesting_sql: SELECT * FROM deadlock_test WHERE id BETWEEN 16 AND 20 FOR UPDATE*************************** 3. row *************************** rollback_trans_id: 29468596191101374 requesting_node: node-tdsql3-xxxx-003requesting_trans_id: 29468596191101374 blocking_trans_id: 29468595838780035 req_lock_range: 000027308000000C blk_lock_range: [000027308000000A,000027308000000F) occurred_at: 2026-04-28 15:31:08.555 requesting_sql: SELECT * FROM deadlock_test WHERE id = 12 FOR UPDATE

·查询示例

— 查询所有节点上,历史发生过的死锁详细信息SELECT * FROM information_schema.tdstore_pessimistic_deadlock_detail_info \\G– 查询所有节点上,被回滚事务 ID 为 29468596191101374 的死锁事件的详细信息:SELECT * FROM information_schema.tdstore_pessimistic_deadlock_detail_info WHERE rollback_trans_id = 29468596191101374 \\G

赞 (0)
上一篇 4天前
下一篇 4天前