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 関数を使用できます。この関数は、出力をクエリ可能なテーブルとして扱います。このコマンドの出力をクエリするには、 パイプ演算子 を使用することもできます。
コマンドは、コマンドを実行するために使用されるロールのアクセス権限によって決定された通り、指定されたオブジェクトタイプに対して 最大 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 |
+---------------------+------+---------------------+-------------------------------+---------+-------------+--------------------------------------+