すべてのテーブルは、テーブルの行を格納するAMPを指定するマップを使用します。フォールバックがあるテーブルの場合、行のプライマリおよびフォール バック コピーがマップ内の異なるAMPに格納されます。
マップを使用すると、システム内のAMP上のテーブルの配置を最適化したり、システム拡張後にテーブル行を再分散したりできます。これを行なう前に、一般的な概念をいくつか考慮することが重要です。
- 連続マップ
- このタイプのマップには、指定範囲内のすべてのAMPが含まれます。デフォルトでは、すべてのシステムには、システム内のすべてのAMPを含む1つの連続マップがあります。Vantageは、システムの初期化、構成、または再構成中に連続マップを作成します。
- スパース マップ
- このタイプのマップには、連続マップからのAMPのサブセットが含まれています。デフォルトでは、MAPSアーキテクチャを有効にする各システムには、1-AMPスパース マップとn-AMPスパース マップがあります。ここで、nは、システム内のノードの数です。適切なデータベース権限がある場合は、新しいスパース マップを作成することもできます。
セカンダリ インデックス テーブルは、基本(インデックス付き)テーブルと同じマップを使用します。テーブルと結合インデックスには、明示的またはデフォルトでマップが割り当てられます。
スパース マップは、小さなテーブルに効率的です。例えば、1,000 AMPシステムに1行のみ含むテーブルがあるとします。フルテーブル スキャンが必要なリクエストには、行を読み取るために連続マップ内のすべての1,000 AMPが必要になります。テーブルには行が1つしかないため、999 AMPはリソースを使用して、行がないことを確認し、報告します。ただし、1行テーブルが1-AMPスパース マップを使用する場合、Teradataでは読み取るAMPを認識し、そのテーブルのリクエストにより速く応答できます。
システムで現在定義されているマップを確認するには、DBC.MapsVまたはDBC.MapsVXビューを問合わせます。データ ディクショナリ ビューの詳細については、<Teradata Vantage™ - データ ディクショナリ、B035-1092>を参照してください。
スパース マップとテーブル コロケーション
PIまたはPAが同じで、同じ連続マップを共有するテーブルの行は、同じAMPに分散されます。これをテーブルコロケーションと呼びます。コロケーションにより、対応する行の結合処理が同じAMP内で行なわれるため、テーブルがPI列またはPA列で結合される場合にパフォーマンスが向上します。
スパース マップを使用するテーブルの場合、結合にはコロケーションを利用するための追加要件があります。
同じスパース マップを使用するテーブルは同じAMPのサブセットに格納されない場合があるため、これらのテーブルのPIまたはPAが同じ場合でも、対応する行がPI列またはPA列に関連する結合時にコロケーションの恩恵を受けることはありません。テーブルをスパース マップに関連付けるときにコロケーション名を指定して、頻繁に結合されるテーブルの行を同じAMPのサブセットに強制的に分散することができます。コロケーション名は、同じスパース マップを使用するテーブルを同じAMPのサブセットに強制的に格納します。