STV_LOCKS - Amazon Redshift

STV_LOCKS

データベース内のテーブルに対する現時点での更新をすべて表示するには、STV_LOCKS テーブルを使用します。

Amazon Redshift は、複数のユーザーが 1 つのテーブルを同時に更新することを防ぐため、テーブルをロックします。STV_LOCKS テーブルに現在のテーブル更新がすべて表示されているときに、STL_TR_CONFLICT テーブルをクエリすると、ロックの衝突のログを見ることができます。SVV_TRANSACTIONS 表示を使用して、開いているトランザクションとロックの競合問題を識別します。

STV_LOCKS はスーパーユーザーのみに表示されます。詳細については、「システムテーブルとビューのデータの可視性」を参照してください。

テーブルの列

列名 データ型 説明
table_id bigint ロックを取得するテーブルのテーブル ID
last_commit timestamp テーブル内での最後のコミットのタイムスタンプ。
last_update timestamp 最後のテーブル更新のタイムスタンプ。
lock_owner bigint ロックに関連付けられたトランザクション ID。
lock_owner_pid bigint ロックに関連付けられたプロセス ID。
lock_owner_start_ts timestamp トランザクション開始時刻のタイムスタンプ。
lock_owner_end_ts timestamp トランザクション終了時刻のタイムスタンプ。
lock_status character (22) ロックを待っているかまたは保持している処理の状態。

サンプルクエリ

現在のトランザクションで発生しているすべてのロックを表示するには、以下のコマンドを入力します。

select table_id, last_update, lock_owner, lock_owner_pid from stv_locks;

このクエリは、以下のような出力を返します。出力には、現在有効となっている 3 つのロックが表示されています。

table_id | last_update | lock_owner | lock_owner_pid ----------+----------------------------+------------+---------------- 100004 | 2008-12-23 10:08:48.882319 | 1043 | 5656 100003 | 2008-12-23 10:08:48.779543 | 1043 | 5656 100140 | 2008-12-23 10:08:48.021576 | 1043 | 5656 (3 rows)