Redshift で SYS_QUERY_HISTORY の execution_time は queue_time/lock_wait_time/planinng_time/compile_time を含まない。
[クエリの詳細] ページには、次のコンポーネントがあります。Query profiler - Amazon Redshift
- 上部ペイン - ページの上部ペインには、ステータスやタイプなど、クエリの詳細が表示されます。上部ペインに表示される情報のソースについては、「Amazon Redshift データベースデベロッパーガイド」の「SYS_QUERY_HISTORY」を参照してください
テーブルの列
SYS_QUERY_HISTORY - Amazon Redshift
列名 データ型 説明 execution_time bigint サービスクラスで実行されている合計時間 (マイクロ秒)。
- リーダーノードはクエリを受け取り、SQL を解析します。
- クエリツリーパーサーは、元のクエリの論理的な表現である初期クエリツリーを生成します。次に、Amazon Redshift は、このクエリツリーをクエリオプティマイザに入力します。
- オプティマイザは、クエリを評価し、必要に応じて書き換えて効率を最大限に高めます。このプロセスにより、関連するクエリが複数作成されて、単一のクエリが置き換えられることがあります。
- オプティマイザは、最高のパフォーマンスで実行されるように 1 つのクエリプラン (または、前のステップで複数のクエリが生成された場合は複数のクエリプラン) を生成します。クエリプランは、結合の種類、結合の順序、集計オプション、データ分散要件などの実行オプションを指定します。クエリプランを表示するには、EXPLAINコマンドを使用できます。クエリプランは、複雑なクエリを分析およびチューニングするための基本ツールです。詳細については、「クエリプランの作成と解釈」を参照してください。
- 実行エンジンは、クエリプランをステップ、セグメント、ストリームに変換します。
- コンピューティングノードスライスは、クエリセグメントを並列的に実行します。このプロセスの一部として、Amazon Redshift は、最適化されたネットワーク通信、メモリ、ディスク管理を利用して、クエリプランのステップから次のステップに中間結果を渡します。これは、クエリ実行の高速化にも役立ちます。
ステップ 5 と 6 はストリームごとに 1 回ずつ行われます。エンジンは、1 つのストリームに対して実行可能なセグメントを作成し、コンピューティングノードに送信します。そのストリームのセグメントが完了したら、エンジンは次のストリームのセグメントを生成します。これにより、エンジンは前のストリームで何が発生したかを分析し (操作がディスクベースであったかどうかなど)、次のストリーム内におけるセグメントの生成に影響を与えることができます。
コンピューティングノードは、完了すると最終処理を行うためクエリの結果をリーダーノードに返します。リーダーノードは、データを 1 つの結果セットにマージし、必要なソートまたは集計すべてに対処します。次に、リーダーノードは結果をクライアントに返します。
クエリプランと実行ワークフロー - Amazon Redshift

