有効時間を含むテーブルの結合インデックス - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ テンポラル テーブル サポート

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

次の表では、valid-timeテーブルに作成できる結合インデックスのタイプを示します。また、valid-time列(または派生PERIODのvalid-time列の構成要素列)をインデックスに射影する必要があるかどうかも示します。

修飾子 単一テーブルの結合インデックス 複数テーブルの結合インデックス 結合インデックスと集約インデックスでのvalid-time列の必要性
CURRENT VALIDTIME 可能 不可 はい/いいえ
VALIDTIME AS OF 不可 不可 適用なし
SEQUENCED VALIDTIME 可能 可能 はい/いいえ
NONSEQUENCED VALIDTIME 可能 可能 いいえ/いいえ

文にvalid-time修飾子を明示的に指定していないときには、システムはセッションvalid-time修飾子を使用します。

Teradata Databaseは、実テーブルのすべてのcurrentまたはsequenced のDML文に対して、valid-time次元のいずれのcurrent結合インデックスおよびsequenced結合インデックスも保守します。これは、変更される列が結合インデックスに含まれて いなくても同じです。

sequenced 結合インデックスでは、システムは、SEQUENCED SELECT文の結果に通常追加されるVALIDTIME列を追加しません。

nonsequenced結合インデックスにはvalid-time列を射影する必要はありませんが、この列を射影することでインデックスの実用性が向上します。

有効時間を含むテーブルのcurrent結合インデックスおよびsequenced結合インデックスの保守に高いコストがかからないようするために、current結合インデックスで参照されない列の変更には、nonsequenced DML (二重テンポラル テーブルの場合には、非テンポラルDML)を使用してください。このような列は、履歴を必要としない時不変の(時間の経過による変化がない)列になります。

時不変の列のみが関与する結合インデックスには、nonsequenced結合インデックスを作成することが最善の方策になります。これにより、valid-time列の参照が回避され、結合インデックスに含まれない列が変更されたときの結合インデックスの保守ステップを省くことができます。

valid-timeテーブルではcurrent複数テーブル結合インデックスがサポートされていません。ただし、現在の時刻から将来の時刻までのあらゆる時点で発行されるCurrent Valid-Time問合わせのみを含めるための、sequencedのvalid-timeインデックスを作成することはできます。2つの二重テンポラル テーブルから複数テーブルの結合インデックスを作成する例を以下に示します。sequencedインデックスにテンポラル列を射影する必要があることに注意してください。

例: valid-timeを含むテーブルの結合インデックス

CREATE JOIN INDEX AS
SEQUENCED VALIDTIME and CURRENT TRANSACTIONTIME
SELECT X1, Y1, VT1, TT1, X2, Y2, VT2, TT2
FROM   t1, t2
WHERE  END(t1.VT1) >= TEMPORAL_DATE
AND    END(t2.VT2) >= TEMPORAL_DATE;