CREATE TABLEのこの句では、テーブルに対して、0個または1個のプライマリ インデックスと、オプションでセカンダリ インデックスを作成できます。
テーブルに対して作成できるプライマリ インデックスは1つまでで、オプションとしてパーティション化することができます。パーティション化オプションは、グローバル一時テーブル、揮発テーブル、およびプライマリ インデックスを持つ標準実テーブルに対して使用できます。グローバル一時トレース テーブルはパーティション化できません。CREATE TABLE(グローバルおよび一時)を参照してください。
テーブルにプライマリ インデックスが必要な場合は、プライマリ インデックスを必ず明示的に定義する必要があります。テーブルにプライマリ インデックスがないな場合にも、同じことが当てはまります。
非パーティション テーブルと列パーティション テーブル(パーティション化されていないNoPIテーブルおよび列パーティション テーブルを参照)を例外として、Teradata Databaseは、プライマリ インデックス値の行ハッシュに基づいてAMPに行を割り当てるので、プライマリ インデックスのあるテーブルに非固有のプライマリ インデックスが定義されている場合、テーブル行をほぼ均等に分散する列セットを選択することが重要です。テーブルがパーティション化されるかどうかにかかわらず、このことは非常に重要です。テーブルのプライマリ インデックスとして列セットを選択することをデータベースに許可すると、複数のAMPへの分散の均等化を制御できなくなり、テーブルにパフォーマンスの問題が発生する可能性があります。
最適化ルーチンはインデックスの定義を使用して、もっともコストがかからないデータ アクセスの方法を計画します。AMPソフトウェアはこれを利用して、最大限コストのかからない方法でディスク上の行に物理的にアクセスします。
テーブルを作成した後で、このテーブルに付加的なセカンダリ インデックスを定義するには、CREATE INDEX文を使用します(CREATE INDEXを参照)。
結合インデックスを作成してこのテーブルに組み込むには、CREATE JOIN INDEX文を使用します(CREATE JOIN INDEXを参照)。
テーブルにハッシュ インデックスを作成するには、CREATE HASH INDEX文を使用します(CREATE HASH INDEXを参照)。
- INDEX(NUSIについては、セカンダリ インデックスのトピックを参照)
- PRIMARY INDEX(プライマリ インデックスおよびパーティション プライマリ インデックスと非パーティション プライマリ インデックスを参照)。
- UNIQUE INDEX(USIについては、セカンダリ インデックスのトピックを参照)
- UNIQUE PRIMARY INDEX(プライマリ インデックスおよびパーティション プライマリ インデックスと非パーティション プライマリ インデックスを参照)。
プライマリ インデックスとセカンダリ インデックスの詳細については、<Teradata Vantage™ - データベースの設計、B035-1094>を参照してください。