STL_SCAN - Amazon Redshift

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

STL_SCAN

テーブルをスキャンするステップをクエリについて分析します。スキャンは 1 つのセグメント内で最初のステップなので、このテーブルに含まれる行のステップ番号は常に 0 です。

このビュー はすべてのユーザーに表示されます。スーパーユーザーはすべての行を表示できます。通常のユーザーは自分のデータのみを表示できます。詳細については、「Visibility of data in system tables and views」を参照してください。

Table columns

列名。 データ型 説明:
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 処理された合計行数。
bytes bigint ステップのすべての出力行のサイズ (バイト単位)。
fetches bigint This information is for internal use only.
type integer スキャンタイプの ID。有効な値のリストについては、次の表を参照してください。
tbl integer テーブル ID。
is_rrscan character: 1 true (t) の場合は、ステップで範囲限定スキャンが使用されたことを示します。
is_delayed_scan character: 1 This information is for internal use only.
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 This information is for internal use only.
num_em_blocks integer This information is for internal use only.
checksum bigint This information is for internal use only.
runtime_filtering character: 1 true(t) の場合、ランタイムフィルタが適用されていることを示します。

Scan types

タイプ ID 説明:
1 ネットワークからのデータ。
2. 圧縮された共有メモリ内のパーマネントユーザーテーブル。
3 行が認識される一時テーブル。
21. Amazon S3 からロードするファイル。
22 Amazon DynamoDB からテーブルをロードします。
%23 リモート SSH 接続からのロードデータ。
: 24 リモートクラスター (ソート済みリージョン) からのロードデータ。これは、サイズを変更するために使用されます。
25* リモートクラスター (未ソートリージョン) からのロードデータ。これは、サイズを変更するために使用されます。

Usage notes

理想的 rows より近くに rows_pre_filter。 違いが大きい rows および rows_pre_filter は、実行エンジンが後で破棄される行をスキャンしていることを示します。これは非効率的です。rows_pre_filterrows_pre_user_filter の差異は、スキャンに含まれる非実体行の数に相当します。削除対象としてマークされた行を削除するには、VACUUM を実行します。rowsrows_pre_user_filter の差異は、クエリによってフィルタリングされる行の数に相当します。多数の行がユーザーフィルタによって破棄される場合は、ソート列の選択を見直すか、未ソートリージョンが大きいことが原因である場合は、バキュームを実行します。

Sample queries

次の例は、バキュームされていない行 (非実体行) がテーブルによって削除されたため、rows_pre_filterrows_pre_user_filter よりも大きいことを示しています。

SELECT 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)