説明
このステートメントは、マテリアライズドビューのプロパティを変更するために使用されます。
説明
OceanBaseデータベースV4.3.5では、V4.3.5 BP1バージョンから ALTER MATERIALIZED VIEW ステートメントがサポートされています。
権限要件
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データベースV4.3.5バージョンでは、 |
| alter_mview_action_list | マテリアライズドビューに対して実行できる変更操作のリストを表します。複数の操作を同時に指定でき、英語のカンマ(,)で区切ります。詳細については、以下のalter_mview_actionを参照してください。 |
alter_mview_action
parallel_clause:マテリアライズドビューのリフレッシュ並列度を変更します。値は以下のとおりです:NOPARALLEL:デフォルト設定で、並列度は1です。PARALLEL integer:並列度を指定します。integerの値は1以上の整数です。
例:
ALTER MATERIALIZED VIEW mv1 PARALLEL 5;REFRESH [nested_refresh_option] [[START WITH expr] [NEXT expr]]:ネストされたマテリアライズドビューのリフレッシュ戦略またはマテリアライズドビューのバックグラウンドリフレッシュタスクの時間間隔を変更します。nested_refresh_option:オプションで、ネストされたマテリアライズドビューのリフレッシュ戦略を示します。INDIVIDUAL:デフォルト値で、個別リフレッシュを示します。INCONSISTENT:カスケード非一貫性リフレッシュを示します。CONSISTENT:カスケード一貫性リフレッシュを示します。
説明
OceanBaseデータベースV4.3.5では、V4.3.5 BP3以降のバージョンからネストされたマテリアライズドビューのリフレッシュ戦略の変更がサポートされています。
例:
ALTER MATERIALIZED VIEW mv1 REFRESH INDIVIDUAL;ALTER MATERIALIZED VIEW mv1 REFRESH INCONSISTENT;ALTER MATERIALIZED VIEW mv1 REFRESH CONSISTENT;[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
例:
ALTER MATERIALIZED VIEW mv1 REFRESH START WITH current_date;ALTER MATERIALIZED VIEW mv1 REFRESH NEXT current_date + 1;ALTER MATERIALIZED VIEW mv1 REFRESH START WITH current_date NEXT current_date + 1;
例
テーブル
test_tbl1を作成します。CREATE TABLE test_tbl1 (col1 NUMBER PRIMARY KEY, col2 VARCHAR2(20), col3 NUMBER, col4 BLOB);mv_test_tbl1という名前のマテリアライズドビューを作成します。CREATE MATERIALIZED VIEW mv_test_tbl1 AS SELECT col1, col2, col3 FROM test_tbl1;マテリアライズドビュー
mv_test_tbl1の並列度を5に変更します。ALTER MATERIALIZED VIEW mv_test_tbl1 PARALLEL 5;マテリアライズドビュー
mv_test_tbl1のリフレッシュ計画で、初期リフレッシュ時間を現在日付に設定し、その後は1日ごとにマテリアライズドビューをリフレッシュするように変更します。ALTER MATERIALIZED VIEW mv_test_tbl1 REFRESH START WITH current_date NEXT current_date + 1;