142 DBMS_REFRESH
DBMS_REFRESHパッケージによって、トランザクションの一貫性を維持できる時点にまとめてリフレッシュできるマテリアライズド・ビューのグループを作成できます。これらのグループをリフレッシュ・グループと呼びます。
この章のトピックは、次のとおりです:
142.1 DBMS_REFRESHの概要
マテリアライズド・ビュー間のトランザクションの一貫性を保つことが重要なときは、マテリアライズド・ビューをリフレッシュ・グループに編成できます。
リフレッシュ・グループをリフレッシュすることで、リフレッシュ・グループ内のすべてのマテリアライズド・ビューのデータが、トランザクションの一貫性を保つ特定の時点のデータと確実に一致します。リフレッシュ・グループ内のマテリアライズド・ビューを個別にリフレッシュすることも可能ですが、リフレッシュ・グループ内のその他のマテリアライズド・ビューはリフレッシュされないため、リフレッシュ・グループを編成する意味がなくなります
142.3 DBMS_REFRESHサブプログラムの要約
この表は、DBMS_REFRESHサブプログラムを示し、簡単に説明しています。
表142-1 DBMS_REFRESHパッケージのサブプログラム
| サブプログラム | 説明 |
|---|---|
|
マテリアライズド・ビューをリフレッシュ・グループに追加します |
|
|
リフレッシュ・グループのリフレッシュ間隔を変更します |
|
|
リフレッシュ・グループからすべてのマテリアライズド・ビューを削除し、リフレッシュ・グループを削除します |
|
|
リフレッシュ・グループ・メンバー、およびこのグループ・メンバーをリフレッシュする間隔を指定します |
|
|
リフレッシュ・グループを手動でリフレッシュします |
|
|
マテリアライズド・ビューをリフレッシュ・グループから削除します |
142.3.1 ADDプロシージャ
このプロシージャは、マテリアライズド・ビューをリフレッシュ・グループに追加します。
構文
DBMS_REFRESH.ADD (
name IN VARCHAR2,
{ list IN VARCHAR2,
| tab IN DBMS_UTILITY.UNCL_ARRAY, }
lax IN BOOLEAN := FALSE);
ノート:
このプロシージャはオーバーロードされています。listパラメータとtabパラメータは、同時には指定できません。
パラメータ
表142-2 ADDプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
リフレッシュ・グループに追加するマテリアライズド・ビューの、カンマ区切りのリストです。シノニムはサポートされていません。 各マテリアライズド・ビューは、 |
|
|
カンマ区切りのリストのかわりに、 各マテリアライズド・ビューは、 |
|
|
マテリアライズド・ビューは、一度に1つのリフレッシュ・グループのみに所属できます。マテリアライズド・ビューを他のグループに移動する場合は、 |
142.3.2 CHANGEプロシージャ
このプロシージャは、リフレッシュ・グループのリフレッシュ間隔を変更します。
構文
DBMS_REFRESH.CHANGE ( name IN VARCHAR2, next_date IN DATE := NULL, interval IN VARCHAR2 := NULL, implicit_destroy IN BOOLEAN := NULL, rollback_seg IN VARCHAR2 := NULL, push_deferred_rpc IN BOOLEAN := NULL, refresh_after_errors IN BOOLEAN := NULL, purge_option IN BINARY_INTEGER := NULL, parallelism IN BINARY_INTEGER := NULL, heap_size IN BINARY_INTEGER := NULL);
パラメータ
表142-3 CHANGEプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
リフレッシュ間隔を変更するリフレッシュ・グループの名前です。 |
|
|
次にリフレッシュを行う日付です。デフォルトでは、この日付は変更されません。 |
|
|
このファンクションを使用して、リフレッシュ・グループ内のマテリアライズド・ビューを次にリフレッシュするタイミングが計算されます。intervalは、リフレッシュの直前に評価されます。したがって、リフレッシュにかかる時間より長い間隔を選択します。デフォルトでは、intervalは変更されません。 |
|
|
|
|
|
使用するロールバック・セグメントを変更できます。デフォルトでは、ロールバック・セグメントは変更されません。このパラメータをリセットしてデフォルトのロールバック・セグメントを使用するには、引用符を含めて |
|
|
Oracle Database 12cリリース2 (12.2)以上では、このパラメータは無視されます。 |
|
|
Oracle Database 12cリリース2 (12.2)以上では、このパラメータは無視されます。 |
|
|
Oracle Database 12cリリース2 (12.2)以上では、このパラメータは無視されます。 |
|
|
|
|
|
パラレル伝播スケジュールのために同時に検査されるトランザクションの最大数です。最適なパフォーマンスを実現するデフォルト値が、自動的に計算されます。 ノート: Oracleサポート・サービスから指示された場合を除き、このパラメータを設定しないでください。 |
142.3.3 DESTROYプロシージャ
このプロシージャは、リフレッシュ・グループからすべてのマテリアライズド・ビューを削除して、リフレッシュ・グループを削除します。
構文
DBMS_REFRESH.DESTROY ( name IN VARCHAR2);
パラメータ
表142-4 DESTROYプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
破棄するリフレッシュ・グループの名前です。 |
142.3.4 MAKEプロシージャ
このプロシージャは、リフレッシュ・グループ・メンバー、およびこのグループ・メンバーをリフレッシュする間隔を指定します。
構文
DBMS_REFRESH.MAKE (
name IN VARCHAR2
{ list IN VARCHAR2,
| tab IN DBMS_UTILITY.UNCL_ARRAY,}
next_date IN DATE,
interval IN VARCHAR2,
implicit_destroy IN BOOLEAN := FALSE,
lax IN BOOLEAN := FALSE,
job IN BINARY_INTEGER := 0,
rollback_seg IN VARCHAR2 := NULL,
push_deferred_rpc IN BOOLEAN := TRUE,
refresh_after_errors IN BOOLEAN := FALSE
purge_option IN BINARY_INTEGER := NULL,
parallelism IN BINARY_INTEGER := NULL,
heap_size IN BINARY_INTEGER := NULL
job_name IN VARCHAR2 := NULL,
auto_commit IN BOOLEAN := NULL);ノート:
このプロシージャはオーバーロードされています。listパラメータとtabパラメータは、同時には指定できません。
パラメータ
表142-5 MAKEプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
リフレッシュするマテリアライズド・ビューの、カンマ区切りのリストです。シノニムはサポートされていません。これらのマテリアライズド・ビューは、異なるスキーマに置くことができ、また異なるマスター表またはマスター・マテリアライズド・ビューを持つことができます。ただし、すべてのマテリアライズド・ビューが、カレント・データベース内に存在する必要があります。 各マテリアライズド・ビューは、 |
|
|
カンマ区切りのリストのかわりに、 各マテリアライズド・ビューは、 |
|
|
次にリフレッシュを行う日付です。 |
|
|
このファンクションを使用して、グループ内のマテリアライズド・ビューを次にリフレッシュするタイミングが計算されます。このフィールドは、 たとえば、intervalに |
|
|
リフレッシュ・グループにメンバーが存在しなくなったとき、リフレッシュ・グループを自動的に削除するには、このパラメータを |
|
|
マテリアライズド・ビューは、一度に1つのリフレッシュ・グループのみに所属できます。マテリアライズド・ビューを既存のグループから新しいリフレッシュ・グループに移動する場合は、このパラメータを |
|
|
インポート・ユーティリティで必要です。デフォルトの0(ゼロ)を使用してください。 |
|
|
マテリアライズド・ビューのリフレッシュ時に使用するロールバック・セグメントの名前です。デフォルトの |
|
|
Oracle Database 12cリリース2 (12.2)以上では、このパラメータは無視されます。 |
|
|
Oracle Database 12cリリース2 (12.2)以上では、このパラメータは無視されます。 |
|
|
Oracle Database 12cリリース2 (12.2)以上では、このパラメータは無視されます。 |
|
|
|
|
|
パラレル伝播スケジュールのために同時に検査されるトランザクションの最大数です。最適なパフォーマンスを実現するデフォルト値が、自動的に計算されます。 ノート: Oracleサポート・サービスから指示された場合を除き、このパラメータを設定しないでください。 |
|
|
このパラメータは、インポート・ユーティリティで必要です。ユーザーは、デフォルト値 |
|
|
サポートされている値は
デフォルト値は |
使用上のノート
DBMS_SCHEDULERジョブが使用される場合は、インポート・ユーティリティおよびエクスポート・ユーティリティにCREATE JOB権限が必要です。
142.3.5 REFRESHプロシージャ
このプロシージャは、リフレッシュ・グループを手動でリフレッシュします。
構文
DBMS_REFRESH.REFRESH ( name IN VARCHAR2);
パラメータ
表142-6 REFRESHプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
手動でリフレッシュするリフレッシュ・グループの名前です。 |
142.3.6 SUBTRACTプロシージャ
このプロシージャは、マテリアライズド・ビューをリフレッシュ・グループから削除します。
構文
DBMS_REFRESH.SUBTRACT (
name IN VARCHAR2,
{ list IN VARCHAR2,
| tab IN DBMS_UTILITY.UNCL_ARRAY, }
lax IN BOOLEAN := FALSE);ノート:
このプロシージャはオーバーロードされています。listパラメータとtabパラメータは、同時には指定できません。
パラメータ
表142-7 SUBTRACTプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
リフレッシュ・グループから削除するマテリアライズド・ビューの、カンマ区切りのリストです。(シノニムはサポートされていません。)これらのマテリアライズド・ビューは、異なるスキーマに置くことができ、また異なるマスター表またはマスター・マテリアライズド・ビューを持つことができます。ただし、すべてのマテリアライズド・ビューが、カレント・データベース内に存在する必要があります。 各マテリアライズド・ビューは、 |
|
|
カンマ区切りのリストのかわりに、 各マテリアライズド・ビューは、 |
|
|
リフレッシュ・グループ・メンバーではないマテリアライズド・ビューの削除を試みたときに、エラー・メッセージが生成されるようにするには、このパラメータを |