SHOW LOCKS¶
リソースをロックしている実行中のすべてのトランザクションをリストします。このコマンドを使用して、すべてのユーザーのセッションまたはアカウント内のすべてのユーザーの現在のユーザーのロックを表示できます。
トランザクションとリソースロックの詳細については、 トランザクション をご参照ください。
- こちらもご参照ください。
構文¶
SHOW LOCKS [ IN ACCOUNT ]
パラメーター¶
IN ACCOUNT
アカウント内のすべてのユーザーのすべてのロックを返します。このパラメーターは、ACCOUNTADMIN ロールを使用するユーザー(アカウント管理者)によって実行された場合にのみ適用されます。
他のすべてのロールの場合、この関数は現在のユーザーのすべてのセッションのロックのみを表示します。
出力¶
コマンドの出力には、以下の列のロックメタデータが表示されます。
列 |
説明 |
---|---|
|
完全修飾テーブル名またはトランザクション ID。 |
|
|
|
トランザクション ID(符号付き64ビット整数)。 |
|
トランザクションがいつ実行を開始したかを示すタイムスタンプ。 |
|
現在のトランザクションステータス: |
|
ロックがいつ取得されたかを示すタイムスタンプ。 |
|
SQL ステートメントの内部/システム生成識別子。 |
|
セッション ID (ACCOUNTADMINロールを持つユーザーのみに表示されます)。 |
使用上の注意¶
プレフィックス
is_
で始まる列は、Y
(はい)またはN
(いいえ)のいずれかを返します。このコマンドは、実行中のウェアハウスを必要としません。
コマンドは、コマンドを実行するために使用されるロールのアクセス権によって決定された通り、指定されたオブジェクトタイプに対して 最大 10Kのレコードを返します。フィルタが適用されていても、10Kの制限を超えるレコードは返されません。
10Kを超える記録が存在する結果を表示するには、 Snowflake Information Schema で対応するビュー(存在する場合)をクエリします。
このコマンドの出力を後処理するには、 RESULT_SCAN 関数を使用できます。この関数は、出力をクエリ可能なテーブルとして扱います。
コマンド出力には、リソースをロックしている実行中のすべてのトランザクションの IDs が含まれます。これらの IDs は、指定されたトランザクションを中止するための SYSTEM$ABORT_TRANSACTION の入力として使用できます。
ハイブリッドテーブルの場合、このコマンドはトランザクションがブロックされている場合、またはこのコマンドが他のトランザクションをブロックしている場合にのみロックを表示します。
例¶
この例では、あるトランザクションが指定された標準テーブル(resource
列で指定されたテーブル)のロックを保持しています。
SHOW LOCKS;
+---------------------------+------------+---------------------+-------------------------------+---------+-------------------------------+--------------------------------------+
| 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;
+---------------------+------+---------------------+-------------------------------+---------+-------------+--------------------------------------+
| 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 |
+---------------------+------+---------------------+-------------------------------+---------+-------------+--------------------------------------+