次に示す表では、valid-timeテーブルに推奨されるパーティション式について説明しています。この表のvtcolumnは、valid-time列を表わしています。
valid-time列のデータ型 | 推奨されるパーティション式 |
---|---|
PERIOD(DATE) NOT NULL | PARTITION BY CASE_N(
END(vtcolumn) >= CURRENT_DATE AT '-12:59',
NO CASE)
(AT '-12:59'はAT INTERVAL -'12:59' HOUR TO MINUTEの省略形) valid-time列が派生PERIOD列の場合、構成要素列はNOT NULLとして定義されている必要があり、派生PERIOD列はNOT NULLと定義されていると見なされます。
|
PERIOD(DATE) | PARTITION BY CASE_N( END(vtcolumn) IS NULL OR END(vtcolumn) >= CURRENT_DATE AT '-12:59', NO CASE) (AT '-12:59'はAT INTERVAL -'12:59' HOUR TO MINUTEの省略形) |
PERIOD(TIMESTAMP[(n)] [WITH TIME ZONE]) NOT NULL | PARTITION BY CASE_N(
END(vtcolumn) >= CURRENT_TIMESTAMP,
NO CASE)
|
PERIOD(TIMESTAMP[(n)] [WITH TIME ZONE]) | PARTITION BY CASE_N( END(vtcolumn) IS NULL OR END(vtcolumn) >= CURRENT_TIMESTAMP, NO CASE) |
valid-timeテーブルに推奨される物理パーティション化を使用すると、その物理パーティションは次に示すようになります。
- 現在パーティションには、パーティション式のCURRENT_DATE値またはCURRENT_TIMESTAMP値が最後に解決された時点で、有効である行(または、有効であった行)と、その日付またはタイムスタンプとの関係から将来行になる行が保持されます。
valid-time列値がNULLの行は、現在パーティションに入ることに注意してください(ただし、そのような行は現在行とも有効行とも見なされません)。
- 履歴パーティションには、パーティション式のCURRENT_DATE値またはCURRENT_TIMESTAMP値が最後に解決された時点で、非有効になった行が保持されます。
ほとんどのAS OF問合わせは、すでに過去になった時間に関係します。そのため、そのような問合わせには、上記の推奨されるパーティション式から得られる利益はありません。AS OF問合わせの頻繁な実行が想定される場合に、行パーティション排除の利益を得るには、それぞれのパーティションの分布が20%以内になるように、END(<VT_column>)とBEGIN(<VT_column>)でパーティション化します。