範囲制約とは、Teradata SQLのCREATE TABLE文の中で、列の値の許容範囲を制限するために指定するデータ記述句です。範囲制約のチェックはTeradata FastLoad表にデータが挿入される時点で実行されるため、Teradata FastLoadジョブ スクリプトの範囲制約の数は、直接Teradata FastLoadのパフォーマンスに影響します。
範囲制約の種類
次の表 に、明示的と暗示的の2種類の範囲制約を示します。
制約の種類 | 例 |
---|---|
明示的 | 下記のCREATE TABLEの例のSarary列の範囲(1~99000.00) |
暗黙的 | 下記のCREATE TABLEの例のDeptNo列のZZ9の範囲 |
範囲制約の例
下記のTeradata SQLのCREATE TABLE文は、Salary列とDeptNo列に対して有効な2種類の範囲制約句を示しています。
CREATE TABLE Employee (EmpNo INTEGER FORMAT ‘ZZZZ9’, Name VARCHAR (12) CASESPECIFIC TITLE ‘Employee//Name’, DeptNo INTEGER FORMAT ‘zz9’ TITLE ‘Dept#’, Salary DECIMAL (7,2) BETWEEN 1 AND 99000.00 FORMAT ‘ZZ,ZZ9.99’) UNIQUE PRIMARY INDEX (EmpNo);
Employee表に各行を挿入する前に、Teradata FastLoadにより次の点が検証されます。
- Salaryの値が1~99000.00の範囲内にある
- DeptNoの値が-999~999の間にある
例えば、DeptNo列の値が常に-999~999の範囲内にあることがわかっている場合、Teradata FastLoadジョブ スクリプトのCREATE TABLE文からZZ9句を削除すれば、Teradata FastLoadジョブのパフォーマンスを向上できます。