SHOW LOCKS

リソースをロックしている実行中のすべてのトランザクションをリストします。このコマンドを使用して、すべてのユーザーのセッションまたはアカウント内のすべてのユーザーの現在のユーザーのロックを表示できます。

トランザクションとリソースロックの詳細については、 トランザクション をご参照ください。

こちらもご参照ください。

SHOW TRANSACTIONS

構文

SHOW LOCKS [ IN ACCOUNT ]
Copy

パラメーター

IN ACCOUNT

アカウント内のすべてのユーザーのすべてのロックを返します。このパラメーターは、ACCOUNTADMIN ロールを使用するユーザー(アカウント管理者)によって実行された場合にのみ適用されます。

他のすべてのロールの場合、この関数は現在のユーザーのすべてのセッションのロックのみを表示します。

出力

コマンドの出力には、以下の列のロックメタデータが表示されます。

説明

resource

完全修飾テーブル名またはトランザクション ID。

type

PARTITIONS (標準テーブル・ロックの場合)または ROW (ハイブリッド・テーブル・ロックの場合)。

transaction

トランザクション ID(符号付き64ビット整数)。

transaction_started_on

トランザクションがいつ実行を開始したかを示すタイムスタンプ。

status

現在のトランザクションステータス: HOLDING または WAITING

acquired_on

ロックがいつ取得されたかを示すタイムスタンプ。

query_id

SQL ステートメントの内部/システム生成識別子。

session

セッション ID (ACCOUNTADMINロールを持つユーザーのみに表示されます)。

使用上の注意

  • プレフィックス is_ で始まる列は、 Y (はい)または N (いいえ)のいずれかを返します。

  • このコマンドは、実行中のウェアハウスを必要としません。

  • コマンドは、コマンドを実行するために使用されるロールのアクセス権によって決定された通り、指定されたオブジェクトタイプに対して 最大 10Kのレコードを返します。フィルタが適用されていても、10Kの制限を超えるレコードは返されません。

    10Kを超える記録が存在する結果を表示するには、 Snowflake Information Schema で対応するビュー(存在する場合)をクエリします。

  • このコマンドの出力を後処理するには、 RESULT_SCAN 関数を使用できます。この関数は、出力をクエリ可能なテーブルとして扱います。

  • コマンド出力には、リソースをロックしている実行中のすべてのトランザクションの IDs が含まれます。これらの IDs は、指定されたトランザクションを中止するための SYSTEM$ABORT_TRANSACTION の入力として使用できます。

  • ハイブリッドテーブルの場合、このコマンドはトランザクションがブロックされている場合、またはこのコマンドが他のトランザクションをブロックしている場合にのみロックを表示します。

この例では、あるトランザクションが指定された標準テーブル(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 |
+---------------------+------+---------------------+-------------------------------+---------+-------------+--------------------------------------+