# SQL 阻塞查询 (A)

+ `DATA_LOCK_WAITS`
  + 集群中所有 TiKV 节点上当前正在发生的悲观锁等锁
  + 仅拥有 PROCESS 权限的用户可以查询
  + 从所有 TiKV 节点实时获取
  + 如果集群规模很大、负载很高，查询该表有造成性能抖动的潜在风险
+ `DEADLOCKS`
  + 提供当前 TiDB 节点上最近发生的若干次死锁错误的信息
  + 默认容纳最近 10 次死锁错误的信息
+ `TIDB_TRX`
  + 返回了所有 TiDB 上正在执行的事务信息
  + 仅拥有 PROCESS 权限的用户可以查询
-------------------------------------------------------------
SQL 阻塞查询
在 TiDB v5.2.0 版本正式推出了锁视图，这极大的简化了用户们在TiDB 事物阻塞耗时上的排查难度
锁视图主要涉及三张系统表：
- DATA_LOCK_WAITS 表展示了集群中所有 TiKV 节点上当前正在发生的悲观锁等锁的情况
  - 仅拥有 PROCESS 权限的用户可以查询该表。
  - DATA_LOCK_WAITS表中的信息是在查询时，从所有 TiKV 节点实时获取的。
  - 如果集群规模很大、负载很高，查询该表有造成性能抖动的潜在风险；评估实际情况使用
- DEADLOCKS 表提供当前 TiDB 节点上最近发生的若干次死锁错误的信息
  - CLUSTER_DEADLOCKS 表返回整个集群上每个 TiDB 节点中最近发生的数次死锁错误的信息
  - 默认容纳最近 10 次死锁错误的信息
  - 可通过 TiDB 配置文件中的 pessimistic-txn.deadlock-history-capacity 配置项进行调整
- TIDB_TRX 表提供了当前 TiDB 节点上正在执行的事务的信息
  - CLUSTER_TIDB_TRX 表的查询结果额外包含了 INSTANCE 字段，其返回了所有 TiDB 上正在执行的事务信息
  - 仅拥有 PROCESS 权限的用户可以获取该表中的完整信息
