論理パーティション・チェンジ・トラッキングおよびマテリアライズド・ビュー
Autonomous Databaseの論理パーティション・チェンジ・トラッキング(LPCT)メタデータ・フレームワークおよび論理パーティション・チェンジ・トラッキングを使用したクエリー・リライトに関する情報について説明します。
- 論理パーティション・変更トラッキングについて
論理パーティション・変更トラッキング(LPCT)は、マテリアライズド・ビューの失効性を追跡します。 - 論理パーティション・チェンジ・トラッキングの使用
論理パーティション・チェンジ・トラッキング(LPCT)は、指定されたキー列およびメソッドを使用して表を論理的にパーティション化します。 - 例: 論理パーティション・チェンジ・トラッキング
結合および集計を含むマテリアライズド・ビューを使用して論理パーティション・チェンジ・トラッキング(LPCT)を使用するステップを示します。
論理パーティション・チェンジ・トラッキングについて
論理パーティション・チェンジ・トラッキングを使用すると、実表に論理パーティションを作成できます。マテリアライズド・ビュー・ログを使用しないで、またはマテリアライズド・ビューで使用されている表のパーティション化を必要としないで、個々の論理パーティションに対する実表の失効を評価します。
マテリアライズド・ビューの1つ以上の依存実表が更新されると、マテリアライズド・ビューはSTALE
になり、デフォルトの強制整合性モードでクエリー・リライトに使用できなくなります。
論理パーティション・チェンジ・トラッキング(LPCT)は、マテリアライズド・ビューの実表のユーザー指定の論理パーティション化情報を活用して、リフレッシュとリライトの両方の目的で失効したデータをより詳細なパーティション・レベルで追跡する機能を提供します。クラシック・パーティショニング・チェンジ・トラッキング(PCT)は表の物理パーティション化に依存しますが、LPCTは物理的にパーティション化される表に依存しません。LPCTはパーティション表と非パーティション表の両方で使用できます。
論理パーティション・チェンジ・トラッキング・メカニズムでは、他のサブセットがSTALE
であっても、マテリアライズド・ビューのFRESH
サブセット(パーティション)が使用されます。マテリアライズド・ビューで事前に計算された結果を使用する頻度が高くなるため、ユーザー問合せのレスポンス時間が短縮されます。マテリアライズド・ビューの使用性を高める以外に、PCTおよびLPCTでは、マテリアライズド・ビュー・ログを必要とせずにマテリアライズド・ビューを増分リフレッシュできます。リフレッシュはON DEMAND
またはON COMMIT
の両方にできます。
パーティション化チェンジ・トラッキング(PCT)と同様に、論理パーティション・チェンジ・トラッキング(LPCT)は実表に関連付けられ、定義された論理パーティション境界に従って、実表のデータ変更の影響を受けるマテリアライズド・ビューの行を正確に識別できます。
詳細は、「拡張マテリアライズド・ビュー」の「拡張マテリアライズド・ビュー」を参照してください。
論理パーティション・チェンジ・トラッキングの使用
論理パーティション・チェンジ・トラッキング(LPCT)は、指定されたキー列およびメソッドを使用して表を論理的にパーティション化します。
論理パーティション・チェンジ・トラッキング作成構文は、物理パーティションに似ています。表の作成の一部として作成する必要がある物理パーティションとは異なり、LPCTは表の作成とそのシェイプに関係なく自由に指定できるため、要件への対応が柔軟になります。LPCTの作成はメタデータのみです。
- 論理パーティションの作成- BNF
BNF論理パーティションを作成するための構文について説明します。 - 論理パーティション・キー列の選択
論理パーティション・キーは、各論理パーティションの境界を定義するために指定されます。 - 論理パーティション・チェンジ・トラッキングを使用したマテリアライズド・ビューの鮮度
論理パーティション・チェンジ・トラッキング(LPCT)の失効トラッキング・メカニズムは、データ変更のたびに、指定された論理パーティション・キーおよびパーティション化方法に基づいて、変更統計を自動的に記録および統合します。 - 論理パーティション・チェンジ・トラッキングを使用したマテリアライズド・ビューによるリライト
論理パーティション・チェンジ・トラッキング(LPCT)を使用すると、Oracleは実表の一部の論理パーティションに関してマテリアライズド・ビューがSTALE
であることを認識しますが、他の部分についてはFRESH
であることを認識します。 - 論理パーティション・チェンジ・トラッキングを使用したマテリアライズド・ビューのリフレッシュ
論理パーティション・チェンジ・トラッキング(LPCT)リフレッシュは、よりきめ細かいデータ失効を使用して実装し、マテリアライズド・ビューのSTALE
サブセットを増分リフレッシュすることで、コストのかかる完全リフレッシュまたはログベースの高速リフレッシュを排除できます。 - 論理パーティション・チェンジ・トラッキング- データ・ディクショナリ・ビュー
論理パーティションに関する情報を検索するためのデータ・ディクショナリ・ビューについて説明します。
論理パーティションの作成- BNF
BNF論理パーティションを作成するための構文について説明します。
BNF論理パーティションを作成する構文は次のとおりです。
CREATE LOGICAL PARTITION TRACKING ON table_name
PARTITION BY RANGE (partition_key)
INTERVAL (interval_clause)
(partition_specification);
RANGE
およびINTERVAL
論理パーティション化メソッドのみがサポートされています。- 1つの論理パーティション・キー列のみがサポートされます。
- パーティション・キー列は、次のデータ型にできます。
NUMBER
DATE
CHAR
VARCHAR
VARCHAR2
TIMESTAMP
TIMESTAMP WITH TIME ZONE
親トピック: 論理パーティション・チェンジ・トラッキングの使用
論理パーティション・キー列の選択
論理パーティション・キーは、各論理パーティションの境界を定義するために指定されます。
論理パーティション・キーは物理的ではありません。つまり、キー範囲に属する表の行は、個別の物理パーティションに分離されません。表は、非パーティションにすることも、論理パーティション・キーとは異なるキーでパーティション化することもできます。論理パーティション・キーは自由に選択でき、パーティション境界を柔軟に選択できます。
論理パーティション・チェンジ・トラッキング(LPCT)キー列を選択するには、クラスタ化された列、つまり、問合せフィルタ述語で頻繁に参照される列値でソートされるデータに近い列を検討します。クラスタ列の場合、データ・ロード時に影響を受ける論理パーティションが少なくなる可能性があります。つまり、STALE
論理パーティションをリフレッシュする必要が少なくなり、リライトに使用する準備が整ったFRESH
論理パーティションが多くなります。表がすでにパーティション化されている場合は、パーティション・キー列以外の別の列を使用してLPCTを作成することをお薦めします。LPCTは、パーティショニング・チェンジ・トラッキング(PCT)と同様の利点を提供し、同じ列でデータ・トラッキングを行う場合、結合された利点は最大化されません。
親トピック: 論理パーティション・チェンジ・トラッキングの使用
論理パーティション・チェンジ・トラッキングを使用したマテリアライズド・ビューの鮮度
論理パーティション・チェンジ・トラッキング(LPCT)の失効トラッキング・メカニズムは、データ変更のたびに、指定された論理パーティション・キーおよびパーティション化方法に基づいて、変更統計を自動的に記録および統合します。
隣接する変更データは、論理パーティションにグループ化されます。物理パーティション境界に関連付けられているパーティショニング・チェンジ・トラッキング(PCT)とは異なり、LPCTスキームでは、実表に適用されたDMLによって生じるデータ変更を柔軟に管理およびグループ化できます。
従来のDMLおよびダイレクト・ロードでは、LPCTは失効の追跡にPCTが使用するアルゴリズムと同じアルゴリズムを採用しています。クエリー・リライト時に、LPCTはリライト包含の計算にPCTが使用するのと同じアルゴリズムを採用します。
キー範囲を使用して表を論理的にパーティション化する場合、マテリアライズド・ビューに論理パーティション・キーが含まれていると、その表に定義されているマテリアライズド・ビューは、失効トラッキング、リフレッシュおよびクエリー・リライトにLPCTを使用する資格があります。
LPCTでは、すべてのタイプのマテリアライズド・ビューがサポートされています。
親トピック: 論理パーティション・チェンジ・トラッキングの使用
論理パーティション・チェンジ・トラッキングを使用したマテリアライズド・ビューでのリライト
Oracleでは、論理パーティション・チェンジ・トラッキング(LPCT)を使用して、実表の一部の論理パーティションに関してマテリアライズド・ビューがSTALE
であることを認識していますが、他の部分についてはFRESH
です。
実表のよりきめ細かいデータ失効情報があると、関連付けられたマテリアライズド・ビューはLPCTリライトにより頻繁に使用されます。
Oracleは、マテリアライズド・ビューのFRESH
サブセットを透過的に識別し、クエリー・リライトに使用して、QUERY_REWRITE_INTEGRITY = ENFORCED |TRUSTED
の場合に実表の複雑な問合せに応答します。
マテリアライズド・ビュー行がこれらの論理パーティションに関して部分的にFRESH
である場合、マテリアライズド・ビュー(FRESH
論理パーティション)を使用して部分的に問合せに応答し、実表(STALE
論理パーティション)を部分的に使用するために、部分リライトが行われることがあります。
親トピック: 論理パーティション・チェンジ・トラッキングの使用
論理パーティション・チェンジ・トラッキングを使用したマテリアライズド・ビューのリフレッシュ
論理パーティション・チェンジ・トラッキング(LPCT)リフレッシュは、よりきめ細かいデータ失効を使用して実装し、マテリアライズド・ビューのSTALE
サブセットを増分リフレッシュすることで、コストのかかる完全リフレッシュまたはログベースの高速リフレッシュを排除できます。
LPCTリフレッシュが指定されている場合、STALE
論理パーティションが識別され、ターゲット・リフレッシュ操作はそれらの論理パーティションに対してのみ実行されます。
論理パーティション・チェンジ・トラッキングを使用してリフレッシュを起動するには、リフレッシュ・メソッドとして‘L’
または‘l’
(論理)を指定します。
たとえば: execute DBMS_MVIEW.REFRESH(<materialized_view_name>,’L’);
REFRESH FORCE
が指定されている場合、FAST
リフレッシュが選択されて実行され、それ以外の場合はCOMPLETE
リフレッシュが実行されます。マテリアライズド・ビューFORCE
のリフレッシュ中、LPCTリフレッシュの優先度は、パーティション化チェンジ・トラッキング(PCT)リフレッシュと同じです。
親トピック: 論理パーティション・チェンジ・トラッキングの使用
論理パーティション・チェンジ・トラッキング- データ・ディクショナリ・ビュー
論理パーティションに関する情報を検索するためのデータ・ディクショナリ・ビューについて説明します。
-
ALL_MVIEW_DETAIL_LOGICAL_PARTITION
: このビューには、現行のユーザーがアクセスできる、LPCTディテール論理パーティションに関するマテリアライズド・ビューのフレッシュネス情報が表示されます。詳細は、ALL_MVIEW_DETAIL_PARTITIONを参照してください。 -
DBA_MVIEW_DETAIL_ LOGICAL_PARTITION
: LPCTディテール論理パーティションに関する、データベース内のすべてのマテリアライズド・ビューのフレッシュネス情報を表示します。詳細は、DBA_MVIEW_DETAIL_PARTITIONを参照してください。 -
USER_MVIEW_DETAIL_ LOGICAL_PARTITION
: 現在のユーザーが所有するすべてのマテリアライズド・ビューについて、LPCTディテール論理パーティションに関するフレッシュネス情報を表示します。詳細は、USER_MVIEW_DETAIL_PARTITIONを参照してください。
親トピック: 論理パーティション・チェンジ・トラッキングの使用