問合わせのパフォーマンスを高めるには、テンポラル テーブルの行をパーティション化する必要があります。パーティション化により、テーブルの行を論理的に現在行と履歴行にグループ化します。現在行の問合わせは自動的に現在行を含むパーティションに向けられます。
テンポラル テーブルに列パーティション化を適用することもできますが、ここで説明する行パーティション化が、テンポラル テーブルに使用されるパーティション化のタイプの1つとして必ず構成される必要があります。
例: ANSI valid-timeテーブルの行パーティション化
valid-timeテーブルを行パーティション化するには、次のPARTITION BY句を使用します。
CREATE MULTISET TABLE employee_vt ( eid INTEGER NOT NULL, ename VARCHAR(5) NOT NULL, terms VARCHAR(5), job_start DATE NOT NULL, job_end DATE NOT NULL, PERIOD FOR job_dur(job_start,job_end) AS VALIDTIME ) PRIMARY INDEX(eid) PARTITION BY CASE_N( END(job_dur)>= CURRENT_DATE AT INTERVAL - 12:59' HOUR TO MINUTE, NO CASE);
パーティション化式では、job_endの代わりにEND(job_dur)を使用する場合があります。
現在パーティションの保守
時間の経過とともに現在行は履歴行になるので、ALTER TABLE TO CURRENT文を定期的に使用して、現在パーティションの履歴行を履歴パーティションに移動する必要があります。ALTER TABLE TO CURRENTではパーティション式を再度解決します。これにより、各行は最新のパーティション式でそれぞれに適したパーティションに移動されます。以下に例を示します。
ALTER TABLE temporal_table_name TO CURRENT;
この文では、表に定義されたプライマリキーと固有性制約のために自動的に作成される、システム定義の結合インデックスも更新します。