2009年2月25日水曜日

[Oracle][Materialized View]元表メンテナンス時のTIPS

MLOGが付いている元表をメンテナンスする際に、2者の関係を一時的に切り離すことができる。元表に対する大量データ投入や、定義変更時に便利。
※ただし、メンテナンス完了後、Materialized Viewを完全リフレッシュする必要があるため注意。

[実装方法]
・以下のプロシージャでメンテナンス開始を宣言する。
---------------------------------------------------
DBMS_MVIEW.BEGIN_TABLE_REORGANIZATION (
tabowner IN VARCHAR2,
tabname IN VARCHAR2);
---------------------------------------------------
tabowner
再編成する表の所有者。

tabname
再編成する表の名前。


・以下のプロシージャでメンテナンス終了を宣言する。
---------------------------------------------------
DBMS_MVIEW.END_TABLE_REORGANIZATION (
tabowner IN VARCHAR2,
tabname IN VARCHAR2);
---------------------------------------------------
パラメータ 説明
tabowner
再編成する表の所有者。

tabname
再編成する表の名前。


[制限]
・メンテナンス完了後、Materialized Viewを完全リフレッシュする必要がある。
・メンテナンスを開始したセッションは、完了まで対象テーブルに対する表ロック状態を取得する。