システムを拡張し、マップの使用状況についてテーブルを分析し、必要に応じてテーブルを他のAMPに移動したら、領域制限とスキュー設定の調整が必要かどうかを分析します。AdjustSpaceプロシージャを使用して、1つ以上のデータベースの固定領域の割り当てと許容スキュー制限を調整します。このプロシージャでは、固定領域の割り当てができるだけ現在の固定領域の使用状況に近づくように調整すると同時に、データベースへの今後の追加に備えて余分なバッファ領域を残します。次の例では、システム内の全データベースの領域設定をデフォルトのバッファの割合で調整します。
CALL TDMaps.AdjustSpace(NULL, NULL, NULL, OutInfo);
この例では、FINANCEデータベースの余分なバッファ領域を5%に設定します。
CALL TDMaps.AdjustSpace('FINANCE', 5, NULL, OutInfo);
TDMaps SpaceSettingsTblには、AdjustSpaceプロシージャのデフォルト値が含まれており、DBA は必要に応じてこの値を変更できます。デフォルトのバッファ領域は10%で、スキューの丸め倍数は5%です。
DBAはAddDBInExcludeListマクロを使用して、AdjustSpaceプロシージャによる領域再調整が不要なデータベースを除外できます。次の例では、データベースSALES_DBを除外リストに追加して、AdjustSpaceを全データベースに対して実行するときに、SALES_DBがスキップされるようにします。
EXEC TDMaps.AddDBInExcludeList('SALES_DB');
また、DelDBInExcludeListマクロを使用して、AdjustSpaceプロシージャから以前除外されたデータベースを含めることもできます。次の例では、SALES_DBを除外リストから削除して、AdjustSpaceを全データベースに対して実行するときに、スキップされないようにします。
EXEC TDMaps.DelDBInExcludeList('SALES_DB');
グローバル領域アカウント処理を無効にした(DBS ControlユーティリティのフラグLegacySpaceAcctgをTRUEに設定)システム上でAdjustSpaceプロシージャを使用することができます。ただし、レガシー領域アカウント処理を使用して、ゼロ以外のスキュー値をシステムに設定しようとすると、AdjustSpaceによってエラーが報告されます。
詳細については、<Teradata Vantage™ - SQL演算子およびユーザー定義関数、B035-1210>を参照してください。