SHOW LOCKS¶
リソースをロックしている実行中のすべてのトランザクションをリストします。このコマンドを使用して、すべてのユーザーのセッションまたはアカウント内のすべてのユーザーの現在のユーザーのロックを表示できます。
トランザクションとリソースロックの詳細については、 トランザクション をご参照ください。
- こちらもご参照ください。
構文¶
SHOW LOCKS [ IN ACCOUNT ]
パラメーター¶
IN ACCOUNT
アカウント内のすべてのユーザーのすべてのロックを返します。このパラメーターは、ACCOUNTADMIN ロールを使用するユーザー(アカウント管理者)によって実行された場合にのみ適用されます。
他のすべてのロールの場合、この関数は現在のユーザーのすべてのセッションのロックのみを表示します。
出力¶
コマンドの出力には、以下の列のロックメタデータが表示されます。
列 |
説明 |
---|---|
|
完全修飾テーブル名またはトランザクション ID。 |
|
|
|
トランザクション ID(符号付き64ビット整数)。 |
|
トランザクションがいつ実行を開始したかを示すタイムスタンプ。 |
|
現在のトランザクションステータス: |
|
ロックがいつ取得されたかを示すタイムスタンプ。 |
|
SQL ステートメントの内部/システム生成識別子。 |
|
セッション ID (ACCOUNTADMINロールを持つユーザーのみに表示されます)。 |
使用上の注意¶
コマンド出力には、リソースをロックしている実行中のすべてのトランザクションの IDs が含まれます。これらの IDs は、指定されたトランザクションを中止するための SYSTEM$ABORT_TRANSACTION の入力として使用できます。
ハイブリッドテーブルの場合、このコマンドはトランザクションがブロックされている場合、またはこのコマンドが他のトランザクションをブロックしている場合にのみロックを表示します。
このコマンドの実行には、稼働中のウェアハウスは必要ありません。
このコマンドは、現在のユーザーの現在のロールに少なくとも1つのアクセス権限が付与されているオブジェクトのみを返します。
MANAGE GRANTS アクセス権限により、所有者はアカウント内のすべてのオブジェクトを暗黙的に参照できます。デフォルトでは、アカウント管理者( ACCOUNTADMIN ロールを持つユーザー)とセキュリティ管理者( SECURITYADMIN ロールを持つユーザー)のみが MANAGE GRANTS 権限を持っています。
このコマンドの出力を後処理するには、 パイプ演算子 (
->>
)または RESULT_SCAN 関数。どちらのコンストラクトも、出力を クエリできる結果セットとして扱います。このコマンドの出力列名は小文字で生成されます。パイプ演算子または でこのコマンドの結果セットを消費する場合 RESULT_SCAN 関数の場合は、を使用します 二重引用符で囲まれた識別子 クエリの列名に を使用し、スキャンされた出力の列名と一致するようにします。たとえば、出力列の名前が次の場合
type``次に を指定します ``"type"
識別子用。
コマンドは、コマンドを実行するために使用されるロールのアクセス権限によって決定された通り、指定されたオブジェクトタイプに対して 最大 1万件の記録を返します。1万件を超える記録は、フィルターを適用しても返されません。
1万件を超える記録が存在する結果を表示するには、 Snowflake Information Schema で対応するビュー(存在する場合)をクエリします。
例¶
この例では、あるトランザクションが指定された標準テーブル(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 |
+---------------------+------+---------------------+-------------------------------+---------+-------------+--------------------------------------+