ALTER TABLE TO CURRENTおよびALTER TABLE … REVALIDATEの比較 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

次の表では、ALTER TABLE TO CURRENTおよびALTER TABLE … REVALIDATEを比較します。REVALIDATEオプションに関する一般的なルールと制約事項を参照してください。

ALTER TABLE TO CURRENT ALTER TABLE ... REVALIDATE
定期的にパーティションを変更する
  • メジャー リリースへのアップグレード後に、テーブル ヘッダーのパーティション情報を更新する。
  • アーカイブが作成されたものと異なるシステム アーキテクチャへ復元した後で、不適切にパーティション化された行を修正する。
  • システムの問題によって不適切にパーティション化された行を修正する。
DATE、CURRENT_DATE、およびCURRENT_TIMESTAMPを解釈して、それぞれの現行値にする。 一番最後に解釈されたDATE、CURRENT_DATE、およびCURRENT_TIMESTAMPの値を使用する。
テーブル ヘッダー内のパーティション情報を更新する。 テーブル ヘッダー内のパーティション情報を更新する。
指定されたテーブルまたは結合インデックスの行を調整する際、Teradata Databaseが、調整後もパーティション内のすべての行がそのパーティション内に保持されていると判断できる場合は、どのパーティションもスキップされる。

これは、ALTER TABLE TO CURRENTリクエストを実行する前に、テーブルまたは結合インデックスの行が正しくパーティション化されていることを前提としている。

指定されたテーブルの行を調整するときに、nullパーティション ハンドラーを指定した場合、Teradata Databaseはすべてのパーティションをスキャンする。

これは、現在のALTER TABLE … REVALIDATE PRIMARY INDEXリクエストを実行する前に、テーブルの行が正しくパーティション化されていない可能性があると想定している。

結合インデックスに対してこのオプションを指定することはできない。

指定されたテーブルまたは結合インデックスのすべての行を再調整する。
  • リクエストでNULLパーティション ハンドラーを指定すると、Teradata Databaseは、調整できないすべてのすべての行を削除する。WITH INSERT INTO save_table NULLパーティション ハンドラーの場合は、それらの行を保存テーブルに保存した後で削除する。

    結合インデックスの行はALTER TABLE TO CURRENTリクエストを使用して削除できないため、結合インデックスに対してこのオプションは指定できない。

  • リクエストでnullパーティション ハンドラーを指定しない場合、Teradata Databaseは、既存の行を調整できなければリクエストをアボートする。
リクエストがnullパーティション ハンドラーを指定している場合に、指定されたテーブルまたは結合インデックスの行のみを調整する。

テーブルの場合にWITH INSERT NULLパーティション ハンドラーを指定すると、Teradata Databaseは、調整できないすべての行を削除する。リクエストでWITH INSERT INTO save_table NULLパーティション ハンドラを指定する場合は、それらの行を保存テーブルに保存した後で削除する。

結合インデックスに対してこのオプションを指定することはできない。