プライマリ・コンテンツに移動
Oracle® Database VLDBおよびパーティショニング・ガイド
12c リリース1 (12.1)
B71291-10
目次へ移動
目次
索引へ移動
索引

前
次

パーティションおよびサブパーティションの交換について

データ・セグメントを交換することで、パーティションまたはサブパーティションを非パーティション表に、非パーティション表をパーティション表のパーティションまたはサブパーティションに変換できます。ハッシュ・パーティション表をコンポジット* - ハッシュ・パーティション表のパーティションに変換することも、コンポジット* - ハッシュ・パーティション表のパーティションをハッシュ・パーティション表に変換することも可能です。同様に、レンジ - リスト・パーティション表をコンポジット* - レンジまたはリスト・パーティション表のパーティションに変換することも、コンポジット* - レンジまたはリスト・パーティション表のパーティションをレンジ - リスト・パーティション表に変換することも可能です。

表パーティションの交換は、パーティション表の内外で迅速にデータを取得するのに便利です。たとえば、データ・ウェアハウス環境で、パーティションの交換を行うと、新しい増分データの既存のパーティション表への高速データ・ローディングが容易になります。

OLTP環境やデータ・ウェアハウス環境では、パーティション表の古いデータ・パーティションを交換することで利点が得られます。実際には削除されずにパーティション表からデータがパージされ、後から個別にアーカイブできます。

パーティションを交換すると、ロギング属性が保持されます。INCLUDING INDEXES句でローカル索引も交換するかどうか、およびWITH VALIDATION句で行が適切にマッピングされていることを検証するかどうかをオプションで指定できます。

注意:

パーティションの交換操作にWITHOUT VALIDATIONを指定する場合、これに関連するのはデータ・ディクショナリの更新のみであるため、通常は高速な操作です。ただし、交換操作に関連する表またはパーティション表に主キーがある場合や一意制約が有効化されている場合には、制約の整合性を維持するため、交換操作はWITH VALIDATIONが指定されているように実行されます。

この検証アクティビティのオーバーヘッドを避けるには、パーティションの交換操作を実行する前に、各制約に対して次の文を発行します。

ALTER TABLE table_name
     DISABLE CONSTRAINT constraint_name KEEP INDEX

交換後に制約を有効化します。

WITHOUT VALIDATIONを指定する場合は、交換するデータが交換するパーティションに含まれることを確認する必要があります。

UPDATE INDEXESを指定しないかぎり、パーティションをUNUSABLEとして交換する表のグローバル索引またはすべてのグローバル索引パーティションが、Oracle Databaseによりマークされます。交換が行われる表のグローバル索引またはグローバル索引パーティションは、無効化されたままになります。

索引構成表にはUPDATE INDEXESは使用できません。かわりにUPDATE GLOBAL INDEXESを使用してください。

DBMS_STATS表プリファレンスのINCREMENTALがtrueに設定され、INCREMENTAL_LEVELTABLEに設定されると、統計が非パーティション表で収集された場合にパーティション表の増分統計がパーティション交換操作でメンテナンスされます。

注意:

仮想列の列統計が不適当な場合、その古い統計を保持するのではなく、列統計は削除されます。この削除についての情報は、アラート・ログ・ファイルに書き込まれます。

関連項目:

  • 増分統計の詳細は、Oracle Database SQLチューニング・ガイドを参照してください

  • DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

ビューを使用したパーティション表および索引の監視の詳細は、「パーティション表および索引の情報の表示」を参照してください。

この項の内容は次のとおりです。