マテリアライズド・ビューを使用したクラウド・リンクのパフォーマンスの最適化
マテリアライズド・ビューは、リモート・データをコンシューマ・データベースにローカルにキャッシュし、それを増分的にリフレッシュすることで、クラウド・リンクのパフォーマンスを向上させます。これは、ネットワーク上のすべてを毎回再読取りするのではありません。
マテリアライズド・ビューは、パフォーマンス向上のためによく使用されます。特にデータベース・リンクを使用している表またはビューを使用しているローカル・データベースにデータを格納する場合に使用します。同様に、大規模計算または要約がある場合、特にデータ・セットが大きい場合に、ビューのかわりにマテリアライズド・ビューが使用されることがよくあります。マテリアライズド・ビューは指定した間隔でリフレッシュされます。これは、データが必ずしも最新ではないことを意味していますが、マテリアライズド・ビューに対する問合せは前述の例では非常に高速になります。ただし、このようなユースケースでは、これらのマテリアライズド・ビューに対する問合せが大幅に高速化されます。
- マテリアライズド・ビューのリフレッシュ
データベースでは、実表の変更後にマテリアライズド・ビューをリフレッシュして、マテリアライズド・ビュー内のデータを管理します。マテリアライズド・ビューをリフレッシュするとそのすべての索引が自動的に更新されます。完全リフレッシュの場合は、リフレッシュ中にすべての索引を再作成できるように、一時ソート領域が必要です。 - クラウド・リンクを介したマテリアライズド・ビューの増分リフレッシュ
増分リフレッシュは一般にFASTリフレッシュと呼ばれ、通常は、完全リフレッシュよりも高速に実行されます。 - マテリアライズド・ビューの高速リフレッシュを使用したクラウド・リンクの登録
マテリアライズド・ビューの高速リフレッシュがサポートされていることを示すには、クラウド・リンクを登録する必要があります。DBMS_CLOUD_LINKパッケージのREGISTERプロシージャをMV_FAST_REFRESH引数とともに使用して、クラウド・リンクを登録します。 - マテリアライズド・ビューの高速リフレッシュを使用したクラウド・リンクの更新
クラウド・リンクを更新して、マテリアライズド・ビューの高速リフレッシュがクラウド・リンクでサポートされていることを示すことができます。 - 例: マテリアライズド・ビューの増分リフレッシュのユースケース
Autonomous AI Databaseインスタンス全体でダッシュボードを操作するデータ・アナリストは、クラウド・リンクを介してアクセスするリモートAutonomous AI Database表でマテリアライズド・ビューを定義し、増分的にリフレッシュできるようになりました。これにより、フル・データ・リロードなしでダッシュボードを迅速に更新できるため、ユーザー・エクスペリエンスが向上し、コストが削減されます。
マテリアライズド・ビューのリフレッシュ
データベースでは、実表の変更後にマテリアライズド・ビューをリフレッシュして、マテリアライズド・ビューのデータを管理します。マテリアライズド・ビューをリフレッシュするとそのすべての索引が自動的に更新されます。完全リフレッシュの場合は、リフレッシュ中にすべての索引を再作成できるように、一時ソート領域が必要です。
マテリアライズド・ビューのリフレッシュのタイプ:
クラウド・リンクを使用するマテリアライズド・ビューの増分リフレッシュ方法は次のとおりです。
-
ログベースのリフレッシュ
様々なリフレッシュ方法については、「マテリアライズド・ビューのリフレッシュ」の章を参照してください。
パーティション・チェンジ・トラッキング(PCT)リフレッシュおよび論理パーティション・チェンジ・トラッキング(LPCT)リフレッシュは、クラウド・リンクを使用するマテリアライズド・ビューではサポートされていません。
クラウド・リンクを介したマテリアライズド・ビューの増分リフレッシュ
増分リフレッシュは、一般にFASTリフレッシュと呼ばれ、通常は、完全リフレッシュよりも高速に実行されます。
増分リフレッシュにより、マテリアライズ・ビューを最初から再作成する必要がなくなります。このように、変更のみ処理するため、リフレッシュ時間が非常に速くなります。ログベースの高速リフレッシュ方式を使用するマテリアライズド・ビューの場合、実表に対する変更はマテリアライズド・ビュー・ログに保持されます。マテリアライズド・ビュー・ログとは、実表で定義されたマテリアライズド・ビューを増分的にリフレッシュできるように、実表への変更を記録したスキーマ・オブジェクトです。各マテリアライズド・ビュー・ログは、それぞれ1つの実表に関連付けられています。マテリアライズド・ビュー・ログは、実表と同じデータベースおよびスキーマに格納されます。Oracle Autonomous AI Databaseで、クラウド・リンクを介してアクセスするリモート表のマテリアライズド・ビューを定義およびリフレッシュできます。
Autonomous AI Database Serverlessは、FASTリフレッシュを使用してマテリアライズド・ビューの増分リフレッシュを実行します。この方法は、マテリアライズド・ビュー全体の完全リフレッシュを実行するのではなく、前回のリフレッシュ以降に行われた変更のみを適用します。
- フル・データ・リロードなしでダッシュボードとレポートをすばやくリフレッシュできるため、ほぼリアルタイムの分析が可能になります。
- データ鮮度の向上により、分析ワークロードのサービス・レベル合意(SLA)を改善。
クラウド・リンクによる増分リフレッシュをサポートする様々なタイプのマテリアライズド・ビューについては、「マテリアライズド・ビューのタイプ」を参照してください。
マテリアライズド・ビューの高速リフレッシュを使用したクラウド・リンクの登録
マテリアライズド・ビューの高速リフレッシュがサポートされていることを示すには、クラウド・リンクを登録する必要があります。DBMS_CLOUD_LINKパッケージのREGISTERプロシージャをMV_FAST_REFRESH引数とともに使用して、クラウド・リンクを登録します。
CLOUDLINKスキーマのSALES_VIEW_AGG表に作成されているとします。その後、REGISTERプロシージャでMV_FAST_REFRESH引数にTRUE値を渡すことで、高速リフレッシュ機能を有効にしたクラウド・リンクとして登録できます。BEGIN
DBMS_CLOUD_LINK.REGISTER(
schema_name => 'CLOUDLINK',
schema_object => 'SALES_VIEW_AGG',
namespace => 'REGIONAL_SALES',
name => 'SALES_AGG',
description => 'Aggregated regional sales information.',
scope => 'MY$TENANCY',
auth_required => FALSE,
data_set_owner => 'tomholl@example.com',
mv_fast_refresh => TRUE );
END;
/プロバイダとして、コンシューマ・データベースのマテリアライズド・ビューに対応する、プロバイダ・データベースの実表にマテリアライズド・ビュー・ログ表を作成する必要があります。
詳細は、REGISTERプロシージャを参照してください。
マテリアライズド・ビューの高速リフレッシュによるクラウド・リンクの更新
クラウド・リンクを更新して、マテリアライズド・ビューの高速リフレッシュがクラウド・リンクでサポートされていることを示すことができます。
BEGIN
DBMS_CLOUD_LINK.REGISTER(
schema_name => 'CLOUDLINK',
schema_object => 'SALES_ALL',
namespace => 'TRUSTED_COMPARTMENT',
name => 'SALES',
description => 'Trusted Compartment, only accessible within my compartment. Early sales data.',
scope => 'MY$COMPARTMENT',
auth_required => FALSE,
data_set_owner => 'tomholl@example.com' );
END;
/マテリアライズド・ビュー・ログ表は、後でCLOUDLINKスキーマのSALES_ALL表に作成されるとします。UPDATE_REGISTRATIONプロシージャでMV_FAST_REFRESH引数にTRUE値を渡すことで、高速リフレッシュ機能を有効にするようにクラウド・リンクを更新できます。
BEGIN
DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
namespace => 'TRUSTED_COMPARTMENT',
name => 'SALES',
mv_fast_refresh => TRUE );
END;
/UPDATE_REGISTRATIONプロシージャは、クラウド・リンクを介してマテリアライズド・ビュー・ログ表にアクセスできるようにすることで、クラウド・リンクを介したマテリアライズド・ビューの高速リフレッシュを有効にします。アクセスできるようにするには、MV_FAST_REFRESH引数にTRUEの値を渡す必要があります。
詳細は、UPDATE_REGISTRATIONプロシージャを参照してください。
プロバイダは必要なマテリアライズド・ビュー・ログを作成しています。リンクのメタデータをリフレッシュして、新しいログ表が反映されるようにする必要があります。
例: マテリアライズド・ビューの増分リフレッシュのユースケース
自律型AIデータベース・インスタンス全体でダッシュボードを操作するデータ・アナリストは、クラウド・リンクを介してアクセスするリモートAutonomous AI Database表でマテリアライズド・ビューを定義し、増分的にリフレッシュできるようになりました。これにより、フル・データ・リロードなしでダッシュボードを迅速に更新できるため、ユーザー・エクスペリエンスが向上し、コストが削減されます。
前提条件
クラウド・リンクを介したマテリアライズド・ビューの増分リフレッシュを実装する前に、次の前提条件が満たされていることを確認してください。
- クラウド・リンクは適切に構成およびテストされます。
- コンシューマ・データベースとプロバイダ・データベース間のネットワーク接続は安定しています。
- マテリアライズド・ビューを作成およびリフレッシュするユーザーに、適切な権限が付与されます。
- プロバイダ・データベースでは、実表に対してマテリアライズド・ビュー・ロギングが構成されています。
データ・アナリストは、クラウド・リンクを使用してプロバイダ自律型AIデータベースのデータを問い合せるダッシュボードをコンシューマ自律型AIデータベースに構築します。自律型AIデータベース全体の全表スキャン(時間がかかり、コストがかかる)ではなく、高速リフレッシュを使用してコンシューマ自律型AIデータベースにマテリアライズド・ビューを作成し、プロバイダ自律型AIデータベース表から変更されたデータのみを増分更新します。
- プロバイダは、実表にマテリアライズド・ビュー・ログを作成します。
- プロバイダAutonomous AIデータベースでは、データベース管理者が次のいずれかの
DBMS_CLOUD_LINKプロシージャを実行します:REGISTER:MV_FAST_REFRESH=TRUEを使用して新しいクラウド・リンク登録を作成し、最初から高速リフレッシュ機能を有効にします。UPDATE_REGISTRATION: 既存のクラウド・リンク登録を変更して、高速リフレッシュ機能を追加します。
プロバイダは、ログが存在することを認識し、それらを読み取ることができます。
- データ・アナリストは、コンシューマ自律型AIデータベース(ダッシュボード・データベース)で作業し、
REFRESH FASTを指定してCREATE MATERIALIZED VIEW文を実行して、ダッシュボード・データ・キャッシュを構築します。