例: LOCKINGリクエスト修飾子とセカンダリ インデックス - Teradata Database - Teradata Vantage NewSQL Engine - 例: LOCKINGリクエスト修飾子とセカンダリ インデックス

Teradata Vantage™ SQLデータ操作言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/fbo1512081269404.ditamap
dita:ditavalPath
ja-JP/fbo1512081269404.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

基本データの行とインデックスサブテーブルの行は同期されます。 ただし、セカンダリ インデックスが条件式で使用される場合、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ロックは、単にデータの全体像を知りたいときに最も有用です。