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'
句を追加します。