説明
このステートメントは、マテリアライズドビューのプロパティを変更するために使用します。
権限要件
ALTER MATERIALIZED VIEW ステートメントを実行するには、現在のユーザーが操作対象に対する ALTER 権限を持っている必要があります。OceanBaseデータベースの権限の詳細については、Oracleモードの権限分類を参照してください。
構文
ALTER MATERIALIZED VIEW [schema.]view_name alter_mview_action_list;
alter_mview_action_list:
alter_mview_action [, alter_mview_action ...]
alter_mview_action:
parallel_clause
| REFRESH [nested_refresh_option] [[START WITH expr] [NEXT expr]]
parallel_clause:
NOPARALLEL
| PARALLEL integer
| REFRESH PARALLEL integer
nested_refresh_option:
INDIVIDUAL
| INCONSISTENT
| CONSISTENT
パラメータ説明
パラメータ |
説明 |
|---|---|
| schema. | オプションです。マテリアライズドビューが存在するスキーマを指定します。schema. を省略した場合、デフォルトでマテリアライズドビューは現在のセッションが存在するスキーマに配置されます。 |
| view_name | 変更対象のマテリアライズドビューの名前を指定します。
説明OceanBaseデータベースでは、 |
| alter_mview_action_list | マテリアライズドビューに対して実行できる変更操作のリストを示します。複数の操作を指定することもでき、英字のカンマ(,)で区切ります。詳細については、以下の alter_mview_action を参照してください。 |
alter_mview_action
parallel_clause:マテリアライズドビューの並列度を変更するために使用します。取り得る値は以下のとおりです:NOPARALLEL:デフォルト設定で、並列度は1です。PARALLEL integer:テーブルレベルの並列度、つまりマテリアライズドビューをクエリする際の並列度を指定します。integerの値は1以上の整数です。REFRESH PARALLEL integer:リフレッシュ並列度、つまりマテリアライズドビューをリフレッシュする際の並列度を指定します。integerの値は0以上の整数です。0の場合、リフレッシュ並列度はシステム変数mview_refresh_dopの値を使用します。説明
V4.4.2バージョンでは、
ALTER MATERIALIZED VIEWステートメントはV4.4.2 BP2バージョンからREFRESH PARALLEL integerを指定することでリフレッシュ並列度を変更できるようになりました。
例:
マテリアライズドビューをクエリする際の並列度を設定します。
ALTER MATERIALIZED VIEW mv1 PARALLEL 5;マテリアライズドビューの更新並列度を設定します。
ALTER MATERIALIZED VIEW mv1 REFRESH PARALLEL 3;
REFRESH [nested_refresh_option] [[START WITH expr] [NEXT expr]]:ネストされたマテリアライズドビューの更新ポリシーまたはマテリアライズドビューのバックグラウンド更新タスクの時間間隔を変更するために使用されます。nested_refresh_option:オプションです。ネストされたマテリアライズドビューの更新ポリシーを表します。INDIVIDUAL:デフォルト値です。個別更新を表します。INCONSISTENT:カスケード非一貫性更新を表します。CONSISTENT:カスケード一貫性更新を表します。
例:
obclient> ALTER MATERIALIZED VIEW mv1 REFRESH INDIVIDUAL;obclient> ALTER MATERIALIZED VIEW mv1 REFRESH INCONSISTENT;obclient> ALTER MATERIALIZED VIEW mv1 REFRESH CONSISTENT;[[START WITH expr] [NEXT expr]]:マテリアライズドビューのバックグラウンド更新タスクの時間間隔を変更します。[START WITH expr]:オプションです。更新計画の開始時刻を表す式を指定します。[NEXT expr]:オプションです。次回の更新時刻を表す式を指定します。注意
NEXT句を使用する場合、更新計画の時間式は将来の時刻に設定する必要があります。そうでない場合、エラーが発生します。- マテリアライズドビューの更新タスクを定期的に自動スケジュールする場合は、
NEXTを定義してスケジューリング間隔を設定してください。
現在のタイムゾーンの時間を表すために
current_dateの使用を推奨します。時間式の例:現在の時間(
current_date)から10秒ごとにマテリアライズドビューを更新します。START WITH current_date NEXT current_date + INTERVAL '10' SECOND現在の時間(
current_date)から10時間ごとにマテリアライズドビューを更新します。START WITH current_date NEXT current_date + INTERVAL '10' HOUR現在の時間(
current_date)から1日ごとにマテリアライズドビューを更新します。START WITH current_date NEXT current_date + 1
例:
obclient> ALTER MATERIALIZED VIEW mv1 REFRESH START WITH current_date;obclient> ALTER MATERIALIZED VIEW mv1 REFRESH NEXT current_date + 1;obclient> ALTER MATERIALIZED VIEW mv1 REFRESH START WITH current_date NEXT current_date + 1;
例
テーブル
test_tbl1を作成します。obclient> CREATE TABLE test_tbl1 (col1 NUMBER PRIMARY KEY, col2 VARCHAR2(20), col3 NUMBER, col4 BLOB);mv_test_tbl1という名前のマテリアライズドビューを作成します。obclient> CREATE MATERIALIZED VIEW mv_test_tbl1 AS SELECT col1, col2, col3 FROM test_tbl1;マテリアライズドビュー
mv_test_tbl1の並列度を5に変更します。obclient> ALTER MATERIALIZED VIEW mv_test_tbl1 PARALLEL 5;マテリアライズドビュー
mv_test_tbl1のリフレッシュ計画を変更し、初期リフレッシュ時間を現在日付に設定し、その後1日ごとにマテリアライズドビューをリフレッシュします。obclient> ALTER MATERIALIZED VIEW mv_test_tbl1 REFRESH START WITH current_date NEXT current_date + 1;