基本データの行とインデックスサブテーブルの行は同期されます。 ただし、セカンダリ インデックスが条件式で使用される場合、ACCESSロックによる結果は一貫性がありません。 これは、インデックスの制約がデータ行に対して常に再検証されないためです。
例えば、次のリクエストのように、qualify_accntという列がaccnt_recという基本テーブルのセカンダリ インデックスとして定義されています。
LOCKING TABLE accnt_rec FOR ACCESS SELECT accnt_no, qualify_accnt FROM accnt_rec WHERE qualify_accnt = 1587;
このリクエストは次の結果を返します。
accnt_no qualify_accnt -------- ------------- 1761 4214
この場合、値1587はセカンダリ インデックスのサブテーブルで見つかり、対応するデータ行が選択されて返されました。ただし、この検索の進行中、別のユーザーによってアカウントの1761が変更されています。これは、ダーティ読み取りとも呼ばれます。<Teradata Vantage™ - SQLリクエストおよびトランザクション処理、B035-1142>を参照してください。
このような変則的な結果は、最終的にアボートされるトランザクションによって一時的にデータが変更された場合にでも、発生する可能性があります。ACCESSロックは、単にデータの全体像を知りたいときに最も有用です。