テンポラル テーブルのパーティション式 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/cjo1556732840654.ditamap
dita:ditavalPath
ja-JP/cjo1556732840654.ditaval
dita:id
B035-1182
Product Category
Software
Teradata Vantage
テンポラル テーブルに対する現在の問合わせのパフォーマンスを向上するには、テーブルを行パーティション化する必要があります。
  • valid-time列を含むテーブルの場合は、現在行および将来行がパーティションで論理的に履歴行と分離されるため、Current問合わせでスキャンする必要のある列の数が少なくなります。
  • transaction-time列を含むテーブルの場合は、オープン行がパーティションで論理的にクローズ行と分離されます。
  • 二重テンポラル テーブルの場合は、オープン現在行および将来行、オープン履歴行、すべてのクローズ行がパーティションで分離されます。
他のタイプのテーブルと同様、テンポラル テーブルには、列パーティションなどいくつかのレベルのパーティションを定義できます。ここで取り上げるテンポラル行パーティションは、それらのいずれかのレベルとなります。列パーティション化について、詳細は<Teradata Vantage™ - データベースの設計、B035-1094>と<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。

後述のテーブルのタイプごとに説明する推奨されるパーティション式では、ビルトイン関数のCURRENT_DATEとCURRENT_TIMESTAMPのいずれか、または両方を参照します。

時間が経過すると、CURRENT_DATEおよびCURRENT_TIMESTAMPの値は、テーブルを作成したときにパーティション式でCURRENT_DATEおよびCURRENT_TIMESTAMPを解決するために使用した値とは異なるものになります。そのため、現在行と将来行を保持するためのパーティションには、厳密にはcurrentではない行が含まれることがあります。それでも、最適化ルーチンはパーティション内の現在行を適切に検出します。現在パーティションに履歴行が存在することが、パフォーマンスに悪影響を与えることにはなりません(ただし、そのパーティションに大量の履歴行が存在する場合を除く)。

定期的にALTER TABLE TO CURRENT文を使用して、現在パーティションの履歴行を履歴パーティションに移動してください。ALTER TABLE TO CURRENTではパーティション式を再度解決します。これにより、各行は最新のパーティション式でそれぞれに適したパーティションに移動されます。ALTER TABLE TO CURRENTについて、詳細はTeradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144を参照してください。

最適な行パーティション排除を確実にするために、行パーティション テンポラル テーブルに対するAS OFおよびSEQUENCED問合わせでの時間の粒度の指定は、問合わせ内で最も粗い時間粒度を持つvalid-time列よりも細かくしないようにする必要があります。