Teradata-join-strategies
Teradata-JOIN戦略
この章では、Teradataで利用可能なさまざまなJOIN戦略について説明します。
結合方法
Teradataは、さまざまな結合方法を使用して結合操作を実行します。 一般的に使用されるいくつかの結合方法は次のとおりです-
- 結合を結合
- ネストされた結合
- 製品結合
結合を結合
結合が等価条件に基づいている場合、結合結合メソッドが実行されます。 結合結合では、結合行が同じAMP上にある必要があります。 行は、行ハッシュに基づいて結合されます。 結合結合では、異なる結合戦略を使用して、同じAMPに行をもたらします。
戦略#1
結合列が対応するテーブルのプライマリインデックスである場合、結合行は既に同じAMP上にあります。 この場合、配布は必要ありません。
次の従業員表と給与表を考慮してください。
これらの2つのテーブルがEmployeeNo列で結合されると、EmployeeNoは結合される両方のテーブルのプライマリインデックスであるため、再配布は行われません。
戦略#2
次のEmployeeテーブルとDepartmentテーブルを検討してください。
これら2つのテーブルがDeparmentNo列で結合されている場合、DepartmentNoは1つのテーブルのプライマリインデックスであり、別のテーブルの非プライマリインデックスであるため、行を再分散する必要があります。 このシナリオでは、行の結合が同じAMP上にない場合があります。 このような場合、TeradataはDepartmentNo列で従業員テーブルを再配布する場合があります。
戦略#3
上記のEmployeeテーブルとDepartmentテーブルでは、Departmentテーブルのサイズが小さい場合、TeradataはすべてのAMPでDepartmentテーブルを複製できます。
ネストされた結合
ネストされた結合はすべてのAMPを使用するわけではありません。 ネストされた結合を実行するには、1つのテーブルの一意のプライマリインデックスの条件が1つで、この列を他のテーブルのインデックスに結合する必要があります。
このシナリオでは、システムは1つのテーブルの一意のプライマリインデックスを使用して1つの行をフェッチし、その行ハッシュを使用して他のテーブルから一致するレコードをフェッチします。 ネストされた結合は、すべてのJoinメソッドの中で最も効率的です。
製品結合
製品結合は、1つのテーブルからの各適格行を他のテーブルからの各適格行と比較します。 製品の結合は、次の要因のいくつかのために行われる場合があります-
- 条件が欠落している場所。
- 結合条件は等価条件に基づいていません。
- テーブルのエイリアスが正しくありません。
- 複数の結合条件。