識別列テーブルに挿入される行に識別値を割り当てるために、vprocによって予約される番号のプールのサイズを示します。
識別列は、主に、システム生成の固有値を取得することで行の固有性を確保するために使用されます。識別列は、複合インデックスまたは複合キーが望ましくない場合に、単純な固有インデックスやプライマリ キーおよびサロゲート キーを生成するのに役立ちます。識別列はまた、複数のテーブルをマージするときに列の固有性を確保するためや、表のロードおよびアンロード時に前処理を少なくするためにも役立ちます。識別列の詳細については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。
フィールド グループ
一般
有効な範囲
1~1,000,000
デフォルト
100,000
変更の反映
DBS制御レコードへの書き込みが行なわれた後。
使用上の注意
大量挿入する最初の行の一群がPE/AMP vprocに到着すると、以下の事柄が生じます。
- 行の処理に先立って行番号の範囲が予約されます。
- 各PE/AMPが、識別列のために次に使用可能な値をIdColテーブルから検索します。
- 各PE/AMPが、IdCol Batch Sizeの設定と等しい増分値をこの値に加えて、ただちに更新します。
MultiLoad、FastLoad、およびINSERT... SELECTを使用するバルク ロードには、AMPによって識別値が割り当てられます。これらのタイプのロードでは、システムにおけるAMPの数に基づいてIdCol Batch Sizeを設定します。
TPumpおよび繰り返しの挿入を使用するバルクロードには、PEによって識別値が割り当てられます。これらのタイプのロードでは、システムにおけるPEの数に基づいて設定します。
IdCol Batch Sizeパフォーマンス上の影響
IdCol Batch Sizeの設定は、挿入のパフォーマンスと、識別列を持つテーブルに挿入される行の番号付けで生じる可能性のあるずれとの間のトレードオフを伴います。
大きく設定すると、ある負荷に関するひとまとまりの番号の予約でDBC.IdColへの更新が少なくなります。これにより、識別列テーブルに対して行なう一括挿入のパフォーマンスが向上する場合があります。ただし、予約された番号はメモリに保存されるため、データベースの再起動が生じると、未使用の番号が失われ、結果として識別列のナンバリングにギャップが生じます。