SHOW LOCKS

列出所有锁定资源的正在运行的事务。该命令可用于显示当前用户在其所有会话中的锁,或账户中所有用户的锁。

有关事务和资源锁定的信息,请参阅 事务

另请参阅:

SHOW TRANSACTIONS

语法

SHOW LOCKS [ IN ACCOUNT ]
Copy

参数

IN ACCOUNT

返回账户中所有用户的所有锁。此参数仅在由具有 ACCOUNTADMIN 角色的用户(账户管理员)执行时适用。

对于所有其他角色,该函数仅显示当前用户在所有会话中的锁。

输出

命令输出在以下列中显示锁元数据:

描述

resource

完全限定的表名称或事务 ID。

type

``PARTITIONS``(对于标准表锁)或 ``ROW``(对于混合表锁)。

transaction

事务 ID(一个有符号的 64 位整数)。

transaction_started_on

指定事务开始执行时间的时间戳。

status

事务的当前状态:HOLDINGWAITING

acquired_on

指定获取锁的时间的时间戳。

query_id

内部/系统生成的 SQL 语句标识符。

session

会话 ID(仅对具有 ACCOUNTADMIN 角色的用户可见)。

使用说明

  • 命令输出包含了所有正在运行且资源被锁定的事务的 IDs。这些 IDs 可以用作 SYSTEM$ABORT_TRANSACTION 的输入,以中止指定的事务。

  • 对于混合表,此命令仅在事务被阻止时才显示锁,或者在阻止另一个事务时显示锁。

  • 该命令不需要正在运行的仓库即可执行。

  • 该命令仅返回当前用户的当前角色已获授至少一项访问权限的对象。

  • MANAGE GRANTS 访问权限隐式允许其持有者查看账户中的每个对象。默认情况下,只有账户管理员(具有 ACCOUNTADMIN 角色的用户)和安全管理员(具有 SECURITYADMIN 角色的用户)才具有 MANAGE GRANTS 权限。

  • To post-process the output of this command, you can use the pipe operator (->>) or the RESULT_SCAN function. Both constructs treat the output as a result set that you can query.

    The output column names for this command are generated in lowercase. If you consume a result set from this command with the pipe operator or the RESULT_SCAN function, use double-quoted identifiers for the column names in the query to ensure that they match the column names in the output that was scanned. For example, if the name of an output column is type, then specify "type" for the identifier.

  • 该命令 最多 返回指定对象类型的 1 万条记录,由用于执行命令的角色的访问权限决定。即使应用了筛选器,也不会返回任何超出 1 万条限制后的记录。

    要查看存在超过 1 万条记录的结果,请在 Snowflake Information Schema 中查询相应的视图(如果存在)。

示例

在本例中,一个事务持有指定标准表(resource 列中命名的表)上的锁。

SHOW LOCKS;
Copy
+---------------------------+------------+---------------------+-------------------------------+---------+-------------------------------+--------------------------------------+
| resource                  | type       |         transaction | transaction_started_on        | status  | acquired_on                   | query_id                             |
|---------------------------+------------+---------------------+-------------------------------+---------+-------------------------------+--------------------------------------|
| CALIBAN_DB.PUBLIC.WEATHER | PARTITIONS | 1721330303831000000 | 2024-07-18 12:18:23.831 -0700 | HOLDING | 2024-07-18 12:18:49.832 -0700 | 01b5c1c6-0002-8691-0000-a9950068a0c6 |
+---------------------------+------------+---------------------+-------------------------------+---------+-------------------------------+--------------------------------------+

在本例中,一个事务持有混合表上的行级锁。另一个事务正在等待该锁。

SHOW LOCKS;
Copy
+---------------------+------+---------------------+-------------------------------+---------+-------------+--------------------------------------+
| resource            | type |         transaction | transaction_started_on        | status  | acquired_on | query_id                             |
|---------------------+------+---------------------+-------------------------------+---------+-------------+--------------------------------------|
| 1721165584820000000 | ROW  | 1721165584820000000 | 2024-07-16 14:33:04.820 -0700 | HOLDING | NULL        |                                      |
| 1721165584820000000 | ROW  | 1721165674582000000 | 2024-07-16 14:34:34.582 -0700 | WAITING | NULL        | 01b5b715-0002-852b-0000-a99500665352 |
+---------------------+------+---------------------+-------------------------------+---------+-------------+--------------------------------------+
语言: 中文