説明
このステートメントは、マテリアライズドビューのプロパティを変更するために使用します。
権限要件
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
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以上の整数です。
例:
obclient> ALTER MATERIALIZED VIEW mv1 PARALLEL 5;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;