STL_SCAN
テーブルをスキャンするステップをクエリについて分析します。スキャンは 1 つのセグメント内で最初のステップなので、このテーブルに含まれる行のステップ番号は常に 0 です。
STL_SCAN はすべてのユーザーに表示されます。スーパーユーザーはすべての行を表示できますが、通常のユーザーは自分のデータのみを表示できます。詳細については、「システムテーブルとビューのデータの可視性」を参照してください。
注記
STL_SCAN には、メインクラスターで実行されるクエリのみが含まれます。同時実行スケーリングクラスターで実行されるクエリは含まれていません。メインクラスターおよび同時実行スケーリングクラスターの両方で実行されるクエリにアクセスするには、SYS モニタリングビュー SYS_QUERY_DETAIL を使用することをお勧めします。SYS モニタリングビューのデータは、使いやすく理解しやすいようにフォーマットされます。
テーブルの列
列名 | データ型 | 説明 |
---|---|---|
userid | integer | エントリを生成したユーザーの ID。 |
query | integer | クエリ ID。クエリ列は、他の各種システムテーブルおよびビューを結合するために使用できます。 |
slice | integer | クエリが実行されていたスライスを識別する番号。 |
segment | integer | クエリセグメントを識別する番号。 |
step | integer | 実行されたクエリステップ。 |
starttime | timestamp | UTC で表されたクエリの開始時間。合計時間にはキューイングと実行が含まれます。秒の小数部は 6 桁の精度で表されます。例: 2009-06-12 11:29:19.131358 。 |
endtime | timestamp | クエリの実行が完了した時刻 (UTC)。合計時間にはキューイングと実行が含まれます。秒の小数部は 6 桁の精度で表されます。例: 2009-06-12 11:29:19.131358 。 |
tasknum | integer | ステップ実行に割り当てられたクエリタスク処理の数。 |
rows | bigint | 処理された合計行数。 |
バイト | bigint | ステップのすべての出力行のサイズ (バイト単位)。 |
fetches | bigint | この情報は、内部使用に限定されています。 |
type | integer | スキャンタイプの ID。有効な値のリストについては、次の表を参照してください。 |
tbl | integer | テーブル ID。 |
is_rrscan | character(1) | true (t) の場合は、ステップで範囲限定スキャンが使用されたことを示します。 |
is_delayed_scan | character(1) | この情報は、内部使用に限定されています。 |
rows_pre_filter | bigint | 永続テーブルのスキャンの場合は、削除対象としてマークされた行 (非実体の行) をフィルタリングする前でユーザー定義のクエリフィルタが適用される前に出力された合計行数。 |
rows_pre_user_filter | bigint | 永続テーブルのスキャンの場合は、削除対象としてマークされた行 (非実体の行) をフィルタリングした後でユーザー定義のクエリフィルタが適用される前に処理された行数。 |
perm_table_name | character(136) | 永続テーブルのスキャンの場合は、スキャンされたテーブルの名前。 |
is_rlf_scan | character(1) | true (t) の場合は、ステップで低レベルフィルタリングが使用されたことを示します。 |
is_rlf_scan_reason | integer | この情報は、内部使用に限定されています。 |
num_em_blocks | integer | この情報は、内部使用に限定されています。 |
checksum | bigint | この情報は、内部使用に限定されています。 |
runtime_filtering | character(1) | true(t) の場合、ランタイムフィルタが適用されていることを示します。 |
scan_region | integer | この情報は、内部使用に限定されています。 |
num_sortkey_as_predicate | integer | この情報は、内部使用に限定されています。 |
row_fetcher_state | integer | この情報は、内部使用に限定されています。 |
consumed_scan_ranges | bigint | この情報は、内部使用に限定されています。 |
work_stealing_reason | bigint | この情報は、内部使用に限定されています。 |
is_vectorized_scan | character(1) | この情報は、内部使用に限定されています。 |
is_vectorized_scan_reason | integer | この情報は、内部使用に限定されています。 |
row_fetcher_reason | bigint | この情報は、内部使用に限定されています。 |
topology_signature | bigint | この情報は、内部使用に限定されています。 |
use_tpm_partition | character(1) | この情報は、内部使用に限定されています。 |
is_rrscan_expr | character(1) | この情報は、内部使用に限定されています。 |
scanned_mega_value | character(1) | この情報は、内部使用に限定されています。この情報は、特定のスキャンステップで大きな値をスキャンしたかどうかを示します。大きな値は複数のブロックに格納されます。ブロックサイズはデフォルトで 1 MB で、大きな値とは、デフォルト設定で 1 MB より大きい値です。 |
スキャンタイプ
タイプ ID | Description |
---|---|
1 | ネットワークからのデータ。 |
2 | 圧縮された共有メモリ内のパーマネントユーザーテーブル。 |
3 | 行が認識される一時テーブル。 |
21 | Amazon S3 からファイルをロードします。 |
22 | Amazon DynamoDB からテーブルをロードします。 |
23 | リモート SSH 接続からのロードデータ。 |
24 | リモートクラスター (ソート済みリージョン) からのロードデータ。これは、サイズを変更するために使用されます。 |
25 | リモートクラスター (未ソートリージョン) からのロードデータ。これは、サイズを変更するために使用されます。 |
28 | 複数のテーブルの UNION ALL を使用して時系列ビューからデータを読み取ります。 |
29 | Amazon S3 外部テーブルからデータを読み取ります。 |
30 | Amazon S3 外部テーブルのパーティション情報を読み取ります。 |
33 | リモート Postgres テーブルからデータを読み取ります。 |
36 | リモート MySQL テーブルからデータを読み取ります。 |
37 | リモート Kinesis ストリームからデータを読み取ります。 |
使用に関する注意事項
rows
が rows_pre_filter
と相対的に近いことが理想的です。rows
と rows_pre_filter
の間に大きな差異がある場合は、後で破棄される行を実行エンジンがスキャンしていることが考えられ、非効率です。rows_pre_filter
と rows_pre_user_filter
の差異は、スキャンに含まれる非実体行の数に相当します。削除対象としてマークされた行を削除するには、VACUUM を実行します。rows
と rows_pre_user_filter
の差異は、クエリによってフィルタリングされる行の数に相当します。多数の行がユーザーフィルタによって破棄される場合は、ソート列の選択を見直すか、未ソートリージョンが大きいことが原因である場合は、バキュームを実行します。
サンプルクエリ
次の例は、バキュームされていない行 (非実体行) がテーブルによって削除されたため、rows_pre_filter
が rows_pre_user_filter
よりも大きいことを示しています。
SELECT query, slice, segment,step,rows, rows_pre_filter, rows_pre_user_filter from stl_scan where query = pg_last_query_id(); query | slice | segment | step | rows | rows_pre_filter | rows_pre_user_filter -------+--------+---------+------+-------+-----------------+---------------------- 42915 | 0 | 0 | 0 | 43159 | 86318 | 43159 42915 | 0 | 1 | 0 | 1 | 0 | 0 42915 | 1 | 0 | 0 | 43091 | 86182 | 43091 42915 | 1 | 1 | 0 | 1 | 0 | 0 42915 | 2 | 0 | 0 | 42778 | 85556 | 42778 42915 | 2 | 1 | 0 | 1 | 0 | 0 42915 | 3 | 0 | 0 | 43428 | 86856 | 43428 42915 | 3 | 1 | 0 | 1 | 0 | 0 42915 | 10000 | 2 | 0 | 4 | 0 | 0 (9 rows)