バッチ参照整合性は、標準参照整合性をチェックするときに、行ごとにチェックするのではなく、すべての操作を施行するか、または何も操作しないため、システム リソースの点から見ると標準参照整合性よりもコストのかからない参照整合性検査の形式です。
- システムは、REFERENCEインデックスを構築および保守する必要がないため、システム パフォーマンスは向上します。
- その他の場合にREFERENCEインデックスを格納するために使用される領域は、代わりにその他の必要なストレージのために使用可能になるため、ディスク ストレージを節約できます。
参照インデックスの詳細について、<Teradata Vantage™ - データベースの設計、B035-1094>を参照してください。
バッチ参照整合性の関係は、REFERENCES制約にWITH CHECK OPTION句を指定することによって定義します。この句を指定すると、データベースは、単一のトランザクションまたはリクエストの固まりで、定義されたRI制約を施行します。
このRIの形式は、関係のある親テーブルの行と子テーブルの行を結合することによってテストされます。結果に整合性がない場合、システムは、Teradataセッションモードでトランザクション全体をロールバックするか、またはANSIセッションモードで問題リクエストのみをロールバックします。
RI違反が検出されると、整合性に違反した1つの行ではなく、トランザクションまたはリクエスト全体がロールバックされるため、場合によっては、パフォーマンスの向上よりもこの面でのデメリットのほうが大きくなる可能性もあります。
ほとんどのトランザクションには1行しか含まれていないため、多くの場合、結果は標準RIの場合と同じになります。
これと似たような非常に大規模なバッチRIのロールバックは、参照整合性の関係が検証しないALTER TABLE文およびCREATE TABLEリクエストでも生じる可能性があります。
その全か無かという性質のために、バッチRIは、通常のワークロードで、RI違反がないと十分に確信できるテーブルにのみ使用することが最善です。
バッチ参照整合性で定義されているテーブルには、FastLoad、MultiLoad、およびTeradata Parallel Transporterなどのバルク データロード ユーティリティを使用して行をロードすることはできません。
バッチ参照整合性は、ANSI SQL:2011規格に対するTeradataの拡張機能です。