跳到主要内容

SHOW LOCKS

引入或更新于:v1.2.262

提供当前持有表锁的活动事务列表,可以是当前用户在所有会话中的锁,也可以是 Databend 系统中所有用户的锁。锁是一种同步机制,用于限制对共享资源(如表)的访问,确保 Databend 系统中进程或线程之间的有序和受控交互,以维护数据一致性并防止冲突。

诸如 UPDATEDELETEOPTIMIZE TABLERECLUSTER TABLEALTER TABLE COLUMN 等操作可能会导致系统中的表锁。表锁功能默认启用。在资源冲突的情况下,您可以使用该命令检查具体细节。要禁用此功能,请执行 set enable_table_lock=0;

语法

SHOW LOCKS [IN ACCOUNT] [WHERE <expr>]
参数描述
IN ACCOUNT显示 Databend 系统中所有用户的锁信息。如果省略,则返回当前用户在所有会话中的锁。
WHERE根据状态过滤锁;有效值包括 HOLDINGWAITING

输出

该命令返回一个包含以下列的锁信息表:

列名描述
table_id与锁关联的表的内部 ID。
revision表示启动锁的事务版本的修订号。从 0 开始,每次后续事务都会增加此数字,从而在所有事务之间建立全面的顺序。
type锁的类型,例如 TABLE
status锁的状态,例如 HOLDINGWAITING
user与锁关联的用户。
node持有锁的查询节点标识符。
query_id与锁相关的查询会话 ID。在死锁或锁持有时间过长的情况下,可以使用它来 KILL 查询。
created_on启动锁的事务创建的时间戳。
acquired_on锁被获取的时间戳。
extra_info与锁相关的附加信息(如果有)。

示例

SHOW LOCKS IN ACCOUNT;
+----------+----------+-------+---------+------+------------------------+--------------------------------------+----------------------------+----------------------------+------------+
| table_id | revision | type | status | user | node | query_id | created_on | acquired_on | extra_info |
+----------+----------+-------+---------+------+------------------------+--------------------------------------+----------------------------+----------------------------+------------+
| 57 | 4517 | TABLE | HOLDING | root | xzi6pRbLUYasuA9QFB36m6 | d7989971-d5ec-4764-8e37-afe38ebc13e2 | 2023-12-13 09:56:47.295684 | 2023-12-13 09:56:47.310805 | |
+----------+----------+-------+---------+------+------------------------+--------------------------------------+----------------------------+----------------------------+------------+

SHOW LOCKS;
+----------+----------+-------+---------+------+------------------------+--------------------------------------+----------------------------+----------------------------+------------+
| table_id | revision | type | status | user | node | query_id | created_on | acquired_on | extra_info |
+----------+----------+-------+---------+------+------------------------+--------------------------------------+----------------------------+----------------------------+------------+
| 57 | 4517 | TABLE | HOLDING | root | xzi6pRbLUYasuA9QFB36m6 | d7989971-d5ec-4764-8e37-afe38ebc13e2 | 2023-12-13 09:56:47.295684 | 2023-12-13 09:56:47.310805 | |
| 57 | 4521 | TABLE | WAITING | zzq | xzi6pRbLUYasuA9QFB36m6 | 4bc78044-d4fc-4fe1-a5c5-ff6ab1e3e372 | 2023-12-13 09:56:48.419774 | NULL | |
+----------+----------+-------+---------+------+------------------------+--------------------------------------+----------------------------+----------------------------+------------+

SHOW LOCKS WHERE STATUS = 'HOLDING';
+----------+----------+-------+---------+------+------------------------+--------------------------------------+----------------------------+----------------------------+------------+
| table_id | revision | type | status | user | node | query_id | created_on | acquired_on | extra_info |
+----------+----------+-------+---------+------+------------------------+--------------------------------------+----------------------------+----------------------------+------------+
| 57 | 4517 | TABLE | HOLDING | root | xzi6pRbLUYasuA9QFB36m6 | d7989971-d5ec-4764-8e37-afe38ebc13e2 | 2023-12-13 09:56:47.295684 | 2023-12-13 09:56:47.310805 | |
+----------+----------+-------+---------+------+------------------------+--------------------------------------+----------------------------+----------------------------+------------+
开始使用 Databend Cloud
低成本
快速分析
多种数据源
弹性扩展
注册