

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# STV\_QUERY\_METRICS
<a name="r_STV_QUERY_METRICS"></a>

ユーザー定義のクエリキュー (サービスクラス) でアクティブに実行されているクエリについて、処理される列数、CPU 使用率、入出力、ディスク使用率などのメトリクス情報を含みます。完了したクエリのメトリクスを確認するには、[STL\_QUERY\_METRICS](r_STL_QUERY_METRICS.md) システムテーブルを表示します。

クエリメトリクスは、1 秒間隔でサンプリングされます。結果として、同じクエリが複数実行され、わずかに異なる時刻を返す場合があります。また、1 秒未満で実行されるクエリセグメントは記録されない場合があります。

STV\_QUERY\_METRICS は、クエリレベル、セグメントレベル、およびステップレベルでメトリクスを追跡および集計します。クエリセグメントとステップの詳細については、「[クエリプランと実行ワークフロー](c-query-planning.md)」を参照してください。多くのメトリクス (`max_rows`、`cpu_time`など) は、ノードスライスを超えて合計されます。ノードスライスの詳細については、「[データウェアハウスシステムのアーキテクチャ](c_high_level_system_architecture.md)」を参照してください。

列がメトリクスをレポートするレベルを確認するには、`segment` 列および `step_type` 列を調べます。
+ `segment` と `step_type` の両方が `-1` である場合、列はクエリレベルでメトリクスをレポートします。
+ `segment` が `-1` でなく、`step_type`が `-1` である場合、列はメトリクスをセグメントレベルでレポートします。
+ `segment` と `step_type` の両方が `-1` でない場合、列はステップレベルでメトリクスをレポートします。

STV\_QUERY\_METRICS はすべてのユーザーに表示されます。スーパーユーザーはすべての行を表示できますが、通常のユーザーは自分のデータのみを表示できます。詳細については、「[システムテーブルとビューのデータの可視性](cm_chap_system-tables.md#c_visibility-of-data)」を参照してください。

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

## テーブルの列
<a name="r_STV_QUERY_METRICS-table-rows2"></a>


| 列名  | データ型  | 説明  | 
| --- | --- | --- | 
| userid  | integer  | エントリを生成したクエリを実行したユーザーの ID。 | 
| service\_class  | integer  | WLM クエリキュー (サービスクラス) の ID。クエリキューは WLM 設定で定義されます。メトリクスはユーザー定義のキューについてのみレポートされます。 | 
| query | integer  | クエリ ID。クエリ列は、他の各種システムテーブルおよびビューを結合するために使用できます。 | 
| starttime  | timestamp  | UTC で表されたクエリの実行開始時刻。秒の小数部の精度 (6 桁) を使用します。例: 2009-06-12 11:29:19.131358。 | 
| スライス  | integer  | クラスターのスライスの数。 | 
| segment  | integer  | セグメント番号。複数のセグメントから構成された 1 つのクエリ。各セグメントは 1 つ以上のステップから構成されます。複数のクエリセグメントを同時に実行できます。各セグメントは 1 つのプロセスで実行されます。セグメント値が -1 である場合は、メトリクスセグメントの値はクエリレベルまでロールアップされます。 | 
| step\_type  | integer  | 実行されたステップのタイプ。ステップタイプの説明については、「[ステップタイプ](#r_STV_QUERY_METRICS-step-type)」を参照してください。 | 
| rows  | bigint  | ステップに処理された行数。 | 
| max\_rows  | bigint  | ステップの列出力の最大数 (すべてのスライスにわたる集計値)。 | 
| cpu\_time  | bigint  | CPU の使用時間 (ミリ秒)。セグメントレベルでは、すべてのスライスにわたるセグメントの CPU 時間の合計。クエリレベルでは、すべてのスライスとセグメントにわたるクエリの CPU 時間の合計。 | 
| max\_cpu\_time  | bigint  | CPU の最長使用時間 (ミリ秒)。セグメントレベルでは、すべてのスライスにわたるセグメントによる CPU の最長使用時間。クエリレベルでは、任意のクエリセグメントによる CPU の最長使用時間。 | 
| blocks\_read  | bigint  | クエリまたはセグメントに読み取られた 1 MB ブロックの数。 | 
| max\_blocks\_read  | bigint  | セグメントに読み取られた 1 MB ブロックの最大数 (すべてのスライスにわたる集計値)。セグメントレベルでは、すべてのスライスにわたるセグメントによって読み取られた 1 MB ブロックの最大数。クエリレベルでは、任意のクエリセグメントによって読み取られた 1 MB ブロックの最大数。 | 
| run\_time  | bigint  | すべてのスライスにわたって集計された合計実行時間。実行時間に待機時間は含まれません。<br />セグメントレベルでは、すべてのスライスにわたって合計されたセグメントの実行時間。クエリレベルでは、全てのスライスとセグメントにわたって合計されたクエリの実行時間。合計値であるため、実行時間はクエリの実行時間とは関連しません。 | 
| max\_run\_time  | bigint  | セグメントの最長経過時間 (ミリ秒) セグメントレベルでは、すべてのスライスにわたるセグメントの最長実行時間。クエリレベルでは、任意のクエリセグメントの最長実行時間。 | 
| max\_blocks\_to\_disk  | bigint  | 中間結果の書き込みに使用する最大ディスク容量 (1 MB ブロック)。セグメントレベルでは、全てのスライスにわたるセグメントによって使用された最大ディスク容量。クエリレベルでは、任意のクエリセグメントによって使用された最大ディスク容量。 | 
| blocks\_to\_disk  | bigint  | クエリまたはセグメントが中間結果の書き込みに使用するディスク容量 (1 MB ブロック)。 | 
| step | integer  | 実行されたクエリステップ。 | 
| max\_query\_scan\_size | bigint  | クエリによってスキャンされた最大データサイズ (MB)。セグメントレベルでは、すべてのスライスにわたるセグメントによってスキャンされたデータの最大サイズ。クエリレベルでは、任意のクエリセグメントによってスキャンされたデータの最大サイズ。 | 
| query\_scan\_size | bigint  | クエリによってスキャンされたデータサイズ (MB)。 | 
| query\_priority  | integer  | クエリの優先度です。有効な値は、-1､0、1、2、3、および 4 です。ここで、-1 は、クエリ優先度がサポートされていないことを意味します。 | 
| query\_queue\_time | bigint  | クエリがキューに入れられた時間（マイクロ秒）。 | 

## ステップタイプ
<a name="r_STV_QUERY_METRICS-step-type"></a>

次の表に、データベースユーザーに関連するステップタイプのリストを示します。内部利用のみを目的とするステップタイプは含まれません。ステップタイプが -1 の場合、メトリクスはステップレベルでレポートされません。


| ステップタイプ | 説明  | 
| --- | --- | 
| 1  | テーブルのスキャン | 
| 2 | 行の挿入 | 
| 3  | 行の集計 | 
| 6  | ソートステップ | 
| 7 | マージステップ | 
| 8 | 分散ステップ | 
| 9  | ブロードキャスト分散ステップ | 
| 10 | ハッシュ結合 | 
| 11 | マージ結合 | 
| 12 | 保存ステップ | 
| 14 | ハッシュ | 
| 15 | ネストされたループ結合  | 
| 16 | フィールドと表現の投影 | 
| 17 | 返される行数の制限  | 
| 18 | Unique | 
| 20 | 行の削除 | 
| 26 | 返される行のソート数の制限 | 
| 29 | ウィンドウ関数のコンピューティング | 
| 32 | UDF | 
| 33 | Unique | 
| 37 | リーダーノードからクライアントに行を返す | 
| 38 | コンピュートノードからリーダーノードに行を返す | 
| 40 | Spectrum スキャン | 

## サンプルクエリ
<a name="r_STV_QUERY_METRICS-sample-query2"></a>

CPU 時間の長いアクティブなクエリ (1,000 秒以上) を検索するには、次のクエリを実行します。

```
select query, cpu_time / 1000000 as cpu_seconds
from stv_query_metrics where segment = -1 and cpu_time > 1000000000
order by cpu_time;

query | cpu_seconds
------+------------
25775 |        9540
```

ネストされたループ結合を持ち、100 万以上の行を返したクエリを検索するには、次のクエリを実行します。

```
select query, rows 
from stv_query_metrics 
where step_type = 15 and rows > 1000000
order by rows;

query | rows      
------+-----------
25775 | 1580225854
```

60 秒以上実行されていて CPU 時間が 10 秒以下のアクティブなクエリを検索するには、次のクエリを実行します。

```
select query, run_time/1000000 as run_time_seconds
from stv_query_metrics 
where segment = -1 and run_time > 60000000 and cpu_time < 10000000;

query | run_time_seconds
------+-----------------
25775 |              114
```