大さなテーブル/小さなテーブルの結合の定義
大きなテーブル/小さなテーブルの結合(LT/ST)の結合は、3つ以上の小さなテーブル(またはリレーション)を結合し、その結果を1つの大きいテーブルに結合します。これは、次元モデリング スキーマで、大きなファクト テーブルと、より小さなディメンション テーブルとの間で一般的に行なわれる結合のタイプです。場合によっては、これをさらに最適化し、小さいテーブル(またはリレーション)を大きいテーブルにワンステップで結合する、n方向結合を行なうこともできます。
- 結合されるテーブル内で大きな関係を検索する
- 各インデックスへの接続を分析する
- 非インデックス ケースを分析する
大さなテーブル/小さなテーブルの結合について
- すべてのインデックス
- 小さなテーブルのプライマリ[AMP]インデックス
- 選択される列(特に結合が高度に選択的な場合)
- 結合列(特に大さなテーブルへの結合が低度に選択的である場合)
- インデックスは、結合性能の重要な要因である。
- インデックスの選択を考慮する。
- 大さなテーブルでの共通結合列セット上にあるインデックスを考慮する。
大さなテーブル(ファクト テーブル)のプライマリ インデックスが小さなテーブル(ディメンション テーブル)の構成要素の複合物の場合(ファクト テーブルのプライマリ インデックスが、関連するディメンション テーブルのプライマリ インデックスの複合物である次元モデリングでは一般的)、最適化ルーチンは、小さなテーブルに対して積結合を使用します。大さなテーブルのプライマリ インデックスにより、最適化ルーチンはマージ結合を適用でき、大さなテーブル全体を読み取ることがなくなります。これにより、システム リソースの使用効率が高まります。
例えば、1週間における5つの店舗での5つの製品の売上げを調べる場合を考えます。これには、storesテーブル、week_ending_dateテーブル、およびproduct_listとdaily_salesテーブルの結合が必要です。次の図は、この結合を示したものです。
storesテーブル、week_ending_dateテーブル、およびproduct_listテーブルの選択部分が、プロダクト ジョインされます。結果として、daily_salesテーブルのプライマリ インデックスが作成されます。結合された小テーブルは、大さなテーブルと結合されて、応答セットが返されます。この計画では、使用されるシステム リソースがかなり少なくなり、必要な処理時間が短縮されています。