tencent cloud

TDSQL Boundless

产品动态
产品简介
产品概述
应用场景
产品架构
实例类型
兼容性说明
使用规范建议
自研内核
内核概述
内核版本更新动态
功能类特性
性能类特性
产品计费
计费概述
购买方式
价格详情
续费说明
欠费说明
退费说明
快速入门
创建实例
连接实例
用户指南
数据迁移
数据同步/订阅
实例管理
参数配置
账号管理
安全组
备份与恢复
数据库审计
标签管理
实践教程
Online DDL 的技术演进与使用实践
锁机制解析与问题排查实践
数据智能调度及相关性能优化实践
TDSQL Boundless 选型指南与实践教程
开发指南
开发指南(MySQL 兼容模式)
开发指南(HBase 兼容模式)
性能调优
性能调优概述
SQL 调优
DDL 调优
性能白皮书
性能概述
TPC-C 测试
Sysbench 测试
API 文档
History
Introduction
API Category
Making API Requests
Instance APIs
Security Group APIs
Task APIs
Backup APIs
Rollback APIs
Parameter APIs
Database APIs
Data Types
Error Codes
通用参考
系统原理
SQL 参考
数据库参数说明
TPC-H 基准测试数据模型参考
错误码信息
安全与合规
常见问题
服务协议
服务等级协议
服务条款
隐私政策
数据处理和安全协议
联系我们
词汇表

DATA_LOCK_WAITS

PDF
聚焦模式
字号
最后更新时间: 2026-02-10 11:06:28

功能

PERFORMANCE_SCHEMA.DATA_LOCK_WAITS 用于展示集群中所有 hybrid 节点的 TDStore 上所有悲观锁等待信息。
在用户没有查询 DATA_LOCK_WAITS 表的时候,DATA_LOCK_WAITS 不会带来额外的开销。用户不需要将 performance_schema 系统变量设置为 ON,即可查询 DATA_LOCK_WAITS 表。

字段说明

字段名
类型
描述
ENGINE
varchar(32)
存储引擎。对于 TDStore,值是 RocksDB
REQUESTING_ENGINE_LOCK_ID
varchar(128)
唯一标识被阻塞的事务正在申请的悲观锁,或者正在读取的 key 范围。对于 TDStore,其格式为 <持有锁的事务 ID>_<锁范围><锁范围>的格式是:
如果锁的范围是一个单条的 key,则<锁范围>为 key 的十六进制表示。例如:锁标识符 28673778183569468_00002797 表示 ID 为 28673778183569468的事务在十六进制编码为 00002797 的 key 上加了一个悲观锁。
如果锁的范围是一个 key 区间,则<锁范围>格式为 [<hex_start_key>,<hex_end_key>)(左闭右开)或 (<hex_start_key>,<hex_end_key>)(开区间)。例如:锁标识符 28673778183569468_[00002797,00002798),表示 ID 为 28673778183569468的事务在 [00002797,00002798) 区间加了一个悲观锁。
当 key 的十六进制编码过长的时候,可能无法在128字符内表示完全。这个时候,字段值的后两个字符会被置为..,表示这不是一个完整的锁标识符。这种情况下,用户通过 ENGINE_LOCK_ID 查询悲观锁信息时,也需要使用带有..的字段值做查询。
REQUESTING_NODE_ID
bigint unsigned
开启被阻塞事务的 SQLEngine 节点 ID。
REQUESTING_NODE_NAME
varchar(64)
开启被阻塞事务的 SQLEngine 节点名称。
REQUESTING_ENGINE_TRANSACTION_ID
bigint unsigned
被阻塞的事务的唯一标识符。对于 TDStore,如果被阻塞的是只读请求,则值为0
REQUESTING_THREAD_ID
bigint unsigned
执行被阻塞的事务的线程 ID。Performance Schema 内部维护的线程 ID,可用于关联 Performance Schema 的各类事件表。
REQUESTING_EVENT_ID
bigint unsigned
导致被阻塞的事务加锁的 Performance Schema 事件 ID。对于 TDStore,值为NULL
REQUESTING_OBJECT_INSTANCE_BEGIN
bigint unsigned
等锁请求在内存中的地址。
BLOCKING_ENGINE_LOCK_ID
varchar(128)
悲观锁的唯一标识。对于 TDStore ,格式参考data_locks表的 ENGINE_LOCK_ID字段。
BLOCKING_NODE_ID
bigint unsigned
开启持有悲观锁的事务的 SQLEngine 节点 ID。
BLOCKING_NODE_NAME
varchar(64)
开启持有悲观锁的事务的 SQLEngine 节点名称。
BLOCKING_ENGINE_TRANSACTION_ID
bigint unsigned
持有悲观锁的事务的唯一标识符。如果这个悲观锁是读锁,被多个事务共同持有,则只会展示其中一个事务的唯一标识符。
BLOCKING_THREAD_ID
bigint unsigned
执行持有悲观锁的事务的线程 ID,是 Performance Schema 内部维护的线程 ID,可用于关联 Performance Schema 的各类事件表。
BLOCKING_EVENT_ID
bigint unsigned
导致持有悲观锁的事务加锁的 Performance Schema 事件 ID。对于 TDStore ,值为 NULL
BLOCKING_OBJECT_INSTANCE_BEGIN
bigint unsigned
悲观锁在内存中的地址。
TINDEX_ID
int unsigned
悲观锁对应的 tindex ID。通过这个字段的值,我们可以执行SELECT * FROM information_schema.statistics WHERE tindex_id=... 从系统表中获取 tindex ID 对应的表信息。
DATA_SPACE_TYPE
varchar(32)
悲观锁对应的 data space。DATA_SPACE_TYPE_USER代表对用户表的部分数据加锁,DATA_SPACE_TYPE_SYSTEM代表对系统表的部分数据加锁。
REPLICATION_GROUP_ID
bigint unsigned
悲观锁对应的 replication group ID。
KEY_RANGE_REGION_ID
bigint unsigned
悲观锁对应的 key range region ID。

示例

输出示例:
tdsql [(none)]> SELECT * FROM performance_schema.data_lock_waits \\G
*************************** 1. row ***************************
ENGINE: RocksDB
REQUESTING_ENGINE_LOCK_ID: 28681541555060779_[00002797,00002798)
REQUESTING_NODE_ID: 2
REQUESTING_NODE_NAME: node-1-002
REQUESTING_ENGINE_TRANSACTION_ID: 28681541555060779
REQUESTING_THREAD_ID: 44
REQUESTING_EVENT_ID: 0
REQUESTING_OBJECT_INSTANCE_BEGIN: 139759771095568
BLOCKING_ENGINE_LOCK_ID: 28681535313936395_0000279780000001
BLOCKING_NODE_ID: 1
BLOCKING_NODE_NAME: node-1-001
BLOCKING_ENGINE_TRANSACTION_ID: 28681535313936395
BLOCKING_THREAD_ID: 44
BLOCKING_EVENT_ID: 0
BLOCKING_OBJECT_INSTANCE_BEGIN: 139759768476120
TINDEX_ID: 10135
DATA_SPACE_TYPE: DATA_SPACE_TYPE_USER
REPLICATION_GROUP_ID: 257
KEY_RANGE_REGION_ID: 7312
查询示例:
-- 查询所有节点上,等待悲观锁的请求数量
SELECT COUNT(*) FROM performance_schema.data_lock_wais \\G

-- 查询所有节点上,replication group 257 的 key range region 7312 的所有的悲观锁等待信息(仅指定 key_range_region_id 也可查询,但效率较差,无法利用索引加速查询)
SELECT * FROM performance_schema.data_lock_waits WHERE replication_group_id = 257 AND key_range_region_id = 7312 \\G

-- 查询所有节点上,事务 28682479434989637 正在等待的悲观锁的信息
SELECT blocking_engine_lock_id FROM performance_schema.data_lock_waits WHERE requesting_engine_transaction_id = 28682479434989637;
-- engine_lock_id 指定为第一条 sql 查询获得的 blocking_engine_lock_id 字段值。
SELECT * FROM performance_schema.data_locks WHERE engine_lock_id = '29417475275751454_00002C7B80000003';

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈