SVL_QUERY_SUMMARY - Amazon Redshift

SVL_QUERY_SUMMARY

SVL_QUERY_SUMMARY ビューを使用して、クエリの実行についての全般的な情報を確認します。

SVL_QUERY_SUMMARY ビューには SVL_QUERY_REPORT ビューからのデータのサブセットが含まれます。SVL_QUERY_SUMMARY の情報はすべてのノードからの情報の集計であることに注意してください。

注記

SVL_QUERY_SUMMARY ビューには、Amazon Redshift によって実行されたクエリに関する情報のみが含まれます。その他のユーティリティや DDL コマンドの情報は含まれません。Amazon Redshift によって実行されたすべてのステートメントの完全なリストと、DDL およびユーティリティコマンドを含めた情報については、SVL_STATEMENTTEXT ビューをクエリできます。

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

このテーブルの一部またはすべてのデータは、SYS モニタリングビュー SYS_QUERY_DETAIL でも確認できます。SYS モニタリングビューのデータは、使いやすく理解しやすいようにフォーマットされます。クエリには、SYS モニタリングビューを使用することをお勧めします。

SVCS_QUERY_SUMMARY の詳細については、「SVCS_QUERY_SUMMARY」を参照してください。

テーブルの列

列名 データ型 説明
userid integer エントリを生成したユーザーの ID。
query integer クエリ ID。他の各種システムテーブルおよびビューを結合するために使用できます。
stm integer ストリーム。クエリの並行セグメントのセット。クエリには 1 つ以上のストリームがあります。
seg integer セグメント番号。複数のセグメントから構成された 1 つのクエリ。各セグメントは 1 つ以上のステップから構成されます。複数のクエリセグメントを同時に実行できます。各セグメントは 1 つのプロセスで実行されます。
step integer 実行されたクエリステップ。
maxtime bigint ステップを実行する最大時間 (マイクロ秒)。
avgtime bigint ステップを実行する平均時間 (マイクロ秒)。
rows bigint クエリステップに含まれるデータ行の数。
バイト bigint クエリステップに含まれるデータバイトの数。
rate_row double precision 行ごとのクエリ実行率。
rate_byte double precision バイトごとのクエリ実行率。
label text ステップラベル。これは、クエリステップ名と、該当する場合はテーブル ID とテーブル名 (例: scan tbl=100448 name =user) で構成されます。3 桁のテーブル ID は通常、一時テーブルのスキャンを照会します。 tbl=0 は、通常、定数値のスキャンを指します。
is_diskbased character(1) クエリのこのステップが、クラスター内のいずれかのノードでディスクベースのオペレーションとして実行されたかどうか: true (t) または false (f)。ハッシュ、ソート、集計といった特定のステップのみがディスクベースで実行できます。ステップの多くのタイプは、常にメモリ内で実行されます。
workmem bigint クエリステップに割り当てられた作業メモリの量 (バイト単位)。
is_rrscan character(1) true (t) の場合は、ステップで範囲限定スキャンが使用されたことを示します。デフォルトは false (f) です。
is_delayed_scan character(1) true (t) の場合は、ステップで遅延スキャンが使用されたことを示します。デフォルトは false (f) です。
rows_pre_filter bigint 永続テーブルのスキャンの場合、削除対象としてマークされた行をフィルタリングする前に出力された合計行数 (非実体の行)。

サンプルクエリ

クエリステップの処理情報を表示する

次のクエリは、クエリ 87 の各ステップの基本的な処理情報を示します。

select query, stm, seg, step, rows, bytes from svl_query_summary where query = 87 order by query, seg, step;

このクエリは次のサンプル出力で示されているように、クエリ 87 についての処理情報を取得します。

query | stm | seg | step | rows | bytes -------+-----+-----+------+--------+--------- 87 | 0 | 0 | 0 | 90 | 1890 87 | 0 | 0 | 2 | 90 | 360 87 | 0 | 1 | 0 | 90 | 360 87 | 0 | 1 | 2 | 90 | 1440 87 | 1 | 2 | 0 | 210494 | 4209880 87 | 1 | 2 | 3 | 89500 | 0 87 | 1 | 2 | 6 | 4 | 96 87 | 2 | 3 | 0 | 4 | 96 87 | 2 | 3 | 1 | 4 | 96 87 | 2 | 4 | 0 | 4 | 96 87 | 2 | 4 | 1 | 1 | 24 87 | 3 | 5 | 0 | 1 | 24 87 | 3 | 5 | 4 | 0 | 0 (13 rows)

クエリステップがディスクに書き出されたかどうかを確認する

次のクエリは、クエリ ID 1025 (SVL_QLOG を参照して、クエリのクエリ ID の取得方法を確認してください) のクエリのステップがディスクに書き出されたかどうか、またはクエリが完全にインメモリで実行されたかどうかを示します。

select query, step, rows, workmem, label, is_diskbased from svl_query_summary where query = 1025 order by workmem desc;

このクエリは、次のサンプル出力を返します。

query| step| rows | workmem | label | is_diskbased -----+-----+--------+-----------+---------------+-------------- 1025 | 0 |16000000| 141557760 |scan tbl=9 | f 1025 | 2 |16000000| 135266304 |hash tbl=142 | t 1025 | 0 |16000000| 128974848 |scan tbl=116536| f 1025 | 2 |16000000| 122683392 |dist | f (4 rows)

IS_DISKBASED の値をスキャンすることで、ディスクに書き出されたクエリステップを確認できます。クエリ 1025 のハッシュステップはディスクで実行されました。ディスクで実行される可能性があるステップは、ハッシュ、集計、ソートステップを含みます。ディスクベースクエリのステップのみを表示するには、前述の例の SQL ステートメントに and is_diskbased = 't' 句を追加します。