SVL_QLOG
SVL_QLOG ビューにはデータベースに対して実行されたすべてのクエリのログが含まれます。
Amazon Redshift は STL_QUERY テーブルから取得した情報の読み込み可能なサブセットとして SVL_QLOG ビューを作成します。このテーブルを使用して最近実行されたクエリのクエリ ID を検索したり、クエリが完了するまでにかかった時間を確認します。
SVL_QLOG はすべてのユーザーに表示されます。スーパーユーザーはすべての行を表示できますが、通常のユーザーは自分のデータのみを表示できます。詳細については、「システムテーブルとビューのデータの可視性」を参照してください。
このテーブルの一部またはすべてのデータは、SYS モニタリングビュー SYS_QUERY_HISTORY でも確認できます。SYS モニタリングビューのデータは、使いやすく理解しやすいようにフォーマットされます。クエリには、SYS モニタリングビューを使用することをお勧めします。
テーブルの列
列名 | データ型 | 説明 |
---|---|---|
userid | integer | エントリを生成したユーザーの ID。 |
query | integer | クエリ ID。この ID を使用して、他のさまざまなシステムテーブルやビューを結合できます。 |
xid | bigint | トランザクション ID。 |
pid | integer | クエリに関連付けられたプロセス ID。 |
starttime | timestamp | ステートメントの実行が開始された正確な時刻。秒の小数部の精度 (6 桁) を使用します (例: 2009-06-12 11:29:19.131358 )。 |
endtime | timestamp | ステートメントの実行が終了した正確な時刻。秒の小数部の精度 (6 桁) を使用します (例: 2009-06-12 11:29:19.193640 )。 |
elapsed | bigint | クエリの実行にかかった時間の長さ (マイクロ秒)。 |
aborted | integer | クエリがシステムによって停止されたかユーザーによってキャンセルされた場合、この列は 1 になります。クエリが最後まで実行された場合、この列は 0 になります。ワークロードを管理する目的でキャンセルされ、その後再開されたクエリでも、この列の値が 1 になります。 |
ラベル | character(320) | クエリを実行するために使用される名前、または SET QUERY_GROUP コマンドによって定義されるラベル。クエリがファイルベースでないか、QUERY_GROUP パラメータが設定されていない場合、このフィールドの値は default になります。 |
substring | character(60) | 切り捨てられたクエリのテキスト。 |
source_query | integer | クエリで結果のキャッシュが使用された場合、キャッシュされた結果のソースとなったクエリのクエリ ID。結果のキャッシュが使用されていない場合、このフィールドの値は NULL です。 |
concurrency_scaling_status_txt | text | クエリがメインクラスター、または同時実行スケーリングクラスターのどちらで実行されたかについての説明。 |
from_sp_call | integer | クエリがストアドプロシージャから呼び出された場合は、プロシージャ呼び出しのクエリ ID。クエリがストアドプロシージャの一部として実行されなかった場合、このフィールドは NULL です。 |
サンプルクエリ
以下の例では、userid = 100
のユーザーによって実行された最近 5 つのデータベースクエリのクエリ ID、実行時間、および切り捨てられたクエリテキストが返されます。
select query, pid, elapsed, substring from svl_qlog where userid = 100 order by starttime desc limit 5; query | pid | elapsed | substring --------+-------+----------+----------------------------------------------- 187752 | 18921 | 18465685 | select query, elapsed, substring from svl_... 204168 | 5117 | 59603 | insert into testtable values (100); 187561 | 17046 | 1003052 | select * from pg_table_def where tablename... 187549 | 17046 | 1108584 | select * from STV_WLM_SERVICE_CLASS_CONFIG 187468 | 17046 | 5670661 | select * from pg_table_def where schemaname... (5 rows)
次の例では、キャンセルされたクエリ (aborted=1
) の SQL スクリプト名 (LABEL 列) と経過時間を返します。
select query, elapsed, trim(label) querylabel from svl_qlog where aborted=1; query | elapsed | querylabel -------+----------+------------------------- 16 | 6935292 | alltickittablesjoin.sql (1 row)