Amazon Redshift クエリプランの EXPLAIN 結合 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Redshift クエリプランの EXPLAIN 結合

Amazon Redshift は、さまざまな結合演算子を使用して、以下に基づいてデータを取得します。

  • 結合されているテーブルの物理的な設計

  • クエリの構造

  • 結合に必要なデータの場所

  • クエリ自体の特定の要件

Amazon Redshift では、一般的に次の結合タイプが使用されます。

  • ネストされたループ – ネストされたループは、2 つのテーブル間にハッシュテーブルを作成できない場合に発生します。ネストされたループは、主にクロス結合 (カルテシア製品) といくつかの不等式結合に使用されます。そのためには、データベースが左側のテーブルのすべての値を右側のテーブルのすべての値と照合する必要があります。ネストされたループ結合の複雑さは、結合を処理するために約 N*N (または N2) の異なるオペレーションを実行する必要があるという点で「二次」です。ネストされたループは、最も最適な結合タイプです。

  • ハッシュ結合 – ハッシュ結合では、結合条件は互いに完「完」ではありませんが、Amazon Redshift はハッシュ結合を少しの作業で使用して管理できます。ハッシュ結合は通常、ネストされたループ結合よりも高速です。Amazon Redshift は両方のテーブルを調べ、その間にハッシュテーブルを作成します。これは、テーブルの中央にあるルックアップテーブルのようなものです。例えば、結合列が分散キーとソートキーの両方ではないテーブルを結合する場合、ハッシュ結合演算子とハッシュ演算子が使用されます。

  • マージ結合 – マージ結合は通常、最速の結合であり、内部結合と外部結合に使用されます。マージ結合では、両方のテーブルが互いに完結します。つまり、各側の結合条件は分散キーとソートキーです。どちらのテーブルも調整の必要なく完全に並べられます。テーブル内の未ソートの行は、結合テーブルの 20% 未満である必要があります。未ソート行の割合を表示するには、SVV_TABLE_INFO システムテーブルをクエリします。マージ結合は完全結合には使用されません。