17.10 - バッチ参照整合性制約 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-171K-JPN
Language
日本語 (日本)

バッチ参照整合性は、標準参照整合性をチェックするときに、行ごとにチェックするのではなく、すべての操作を施行するか、または何も操作しないため、システム リソースの点から見ると標準参照整合性よりもコストのかからない参照整合性検査の形式です。

バッチRIは参照インデックスを使用しないという面でも、システム リソースの節約になります。参照インデックスを使用しないようにすると、以下の効果があります。
  • システムは、REFERENCEインデックスを構築および保守する必要がないため、システム パフォーマンスは向上します。
  • その他の場合にREFERENCEインデックスを格納するために使用される領域は、代わりにその他の必要なストレージのために使用可能になるため、ディスク ストレージを節約できます。

参照インデックスの詳細について、<Teradata Vantage™ - データベースの設計、B035-1094>を参照してください。

バッチ参照整合性の関係は、REFERENCES制約にWITH CHECK OPTION句を指定することによって定義します。この句を指定すると、データベースは、単一のトランザクションまたはリクエストの固まりで、定義されたRI制約を施行します。

このRIの形式は、関係のある親テーブルの行と子テーブルの行を結合することによってテストされます。結果に整合性がない場合、システムは、Teradataセッションモードでトランザクション全体をロールバックするか、またはANSIセッションモードで問題リクエストのみをロールバックします。

RI違反が検出されると、整合性に違反した1つの行ではなく、トランザクションまたはリクエスト全体がロールバックされるため、場合によっては、パフォーマンスの向上よりもこの面でのデメリットのほうが大きくなる可能性もあります。

ほとんどのトランザクションには1行しか含まれていないため、多くの場合、結果は標準RIの場合と同じになります。

複数の更新操作が関係する場合、バッチ参照整合性制約でテーブルを更新するときに、パフォーマンスの問題が発生する可能性が高くなります。例えば、何千行または何百万行の操作を含むINSERT ... SELECT操作やMERGE操作などです。これは、ロールバック、クレンジング、および再実行にコストのかかる操作になります。

これと似たような非常に大規模なバッチRIのロールバックは、参照整合性の関係が検証しないALTER TABLE文およびCREATE TABLEリクエストでも生じる可能性があります。

その全か無かという性質のために、バッチRIは、通常のワークロードで、RI違反がないと十分に確信できるテーブルにのみ使用することが最善です。

バッチ参照整合性で定義されているテーブルには、FastLoad、MultiLoad、およびTeradata Parallel Transporterなどのバルク データロード ユーティリティを使用して行をロードすることはできません。

バッチ参照整合性は、ANSI SQL:2011規格に対するTeradataの拡張機能です。