メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012年12月1日)

SVL_QUERY_REPORT

Amazon Redshift は、Amazon Redshift の STL システムのいくつかを UNION (結合) したものから SVL_QUERY_REPORT ビューを作成し、実行されたクエリステップについての情報を提供します。

このビューでは、実行されたクエリについての情報が、スライスごとおよびステップごとに分けて示されます。これは、Amazon Redshift クラスターのノードやスライスの問題のトラブルシューティングに役立ちます。

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

テーブルの列

列名 データ型 説明
userid integer エントリを生成したユーザーの ID。
query integer クエリ ID。他の各種システムテーブルおよびビューを結合するために使用できます。
slice integer ステップの実行データスライス。
segment integer

セグメント番号。

複数のセグメントから構成された 1 つのクエリ。各セグメントは 1 つ以上のステップから構成されます。複数のクエリセグメントを同時に実行できます。各セグメントは 1 つのプロセスで実行されます。

step integer 実行されたクエリステップ。
start_time timestamp セグメントの実行が開始された正確な時間 (UTC)。小数秒は 6 桁まで示されます。例: 2012-12-12 11:29:19.131358
end_time timestamp セグメントの実行が終了した正確な時間 (UTC)。小数秒は 6 桁まで示されます。例: 2012-12-12 11:29:19.131467
elapsed_time bigint セグメントの実行にかかった時間 (マイクロ秒)。
rows bigint ステップが生成した行の数 (スライスあたり)。この数値はステップを実行した結果生成されたスライスの行数を表すもので、ステップが受け取った、または処理した行の数ではありません。すなわち、この数値はステップの実行後、次のステップに渡された行の数です。
バイト bigint ステップが生成したバイトの数 (スライスあたり)。
label char(256) クエリステップ名および該当する場合はテーブル ID とテーブル名 (scan tbl=100448 name =user など) からなるステップラベル。3 桁のテーブル ID は通常、一時テーブルのスキャンを照会します。 tbl=0 は、通常、定数値のスキャンを指します。
is_diskbased character(1) クエリのこのステップがディスクベースの処理として実行されたかどうか: true (t) または false (f)。ハッシュ、ソート、集計といった特定のステップのみがディスクベースで実行できます。それ以外のタイプのステップはメモリ内でのみ実行されます。
workmem bigint クエリステップに割り当てられた作業メモリの量 (バイト単位)。この値は実行中に使用するために割り当てられた query_working_mem しきい値です。実際に使用されたメモリの量ではありません。
is_rrscan character(1) true (t) の場合は、ステップで範囲限定スキャンが使用されたことを示します。
is_delayed_scan character(1) true (t) の場合は、ステップで遅延スキャンが使用されたことを示します。
rows_pre_filter bigint 永続テーブルのスキャンの場合は、削除対象としてマークされた行 (非実体の行) をフィルタリングする前でユーザー定義のクエリフィルタが適用される前に出力された合計行数。

サンプルクエリ

次のクエリは、クエリ ID 279 のクエリを実行したときに返される行のデータの偏りを示します。このクエリを使用して、データベースのデータがデータウェアハウスクラスターのスライス全体に均等に分散されているかどうかを確認します。

Copy
select query, segment, step, max(rows), min(rows), case when sum(rows) > 0 then ((cast(max(rows) -min(rows) as float)*count(rows))/sum(rows)) else 0 end from svl_query_report where query = 279 group by query, segment, step order by segment, step;

このクエリにより返されるデータは、以下のサンプルの出力のようになります。

Copy
query | segment | step | max | min | case ------+---------+------+----------+----------+---------------------- 279 | 0 | 0 | 19721687 | 19721687 | 0 279 | 0 | 1 | 19721687 | 19721687 | 0 279 | 1 | 0 | 986085 | 986084 | 1.01411202804304e-06 279 | 1 | 1 | 986085 | 986084 | 1.01411202804304e-06 279 | 1 | 4 | 986085 | 986084 | 1.01411202804304e-06 279 | 2 | 0 | 1775517 | 788460 | 1.00098637606408 279 | 2 | 2 | 1775517 | 788460 | 1.00098637606408 279 | 3 | 0 | 1775517 | 788460 | 1.00098637606408 279 | 3 | 2 | 1775517 | 788460 | 1.00098637606408 279 | 3 | 3 | 1775517 | 788460 | 1.00098637606408 279 | 4 | 0 | 1775517 | 788460 | 1.00098637606408 279 | 4 | 1 | 1775517 | 788460 | 1.00098637606408 279 | 4 | 2 | 1 | 1 | 0 279 | 5 | 0 | 1 | 1 | 0 279 | 5 | 1 | 1 | 1 | 0 279 | 6 | 0 | 20 | 20 | 0 279 | 6 | 1 | 1 | 1 | 0 279 | 7 | 0 | 1 | 1 | 0 279 | 7 | 1 | 0 | 0 | 0 (19 rows)

このページの内容: