日本語PDF

39 読取り専用マテリアライズド・ビューの作成および管理

読取り専用マテリアライズド・ビューおよびリフレッシュ・グループを作成および管理できます。また、マテリアライズド・ビューをリフレッシュすることもできます。

39.1 読取り専用マテリアライズド・ビューの作成

マテリアライズド・ビュー・データベースのマスター表のデータをレプリケートするには、読取り専用マテリアライズド・ビューを作成します。

マスター・データベースとマテリアライズド・ビュー・データベース間でデータをレプリケートするためのマテリアライズド・ビューを作成する前に、使用する予定のデータベース・リンクが使用可能である必要があります。

  1. マテリアライズド・ビューを作成するための必要な権限を持つユーザーとしてデータベースに接続します。
  2. CREATE MATERIALIZED VIEW文を実行します。

例39-1 主キー・マテリアライズド・ビューの作成

CREATE MATERIALIZED VIEW hr.employees_mv1 WITH PRIMARY KEY
  AS SELECT * FROM hr.employees@orc1.example.com;

例39-2 ROWIDマテリアライズド・ビューの作成

CREATE MATERIALIZED VIEW oe.orders REFRESH WITH ROWID AS
  SELECT * FROM oe.orders@orc1.example.com;

例39-3 オブジェクト・マテリアライズド・ビューの作成

必要な型をマテリアライズド・ビュー・データベースに作成した後、OF type句を指定してオブジェクト・マテリアライズド・ビューを作成できます。

たとえば、次のSQL文でorc1.example.comマスター・データベースにoe.categories_tabオブジェクト表を作成するとします。

CREATE TYPE oe.category_typ AS OBJECT
   (category_name           VARCHAR2(50), 
    category_description    VARCHAR2(1000), 
    category_id             NUMBER(2));
/

CREATE TABLE oe.categories_tab OF oe.category_typ
    (category_id    PRIMARY KEY);

oe.categories_tabマスター表に基づいて高速リフレッシュが可能なマテリアライズド・ビューを作成するには、この表のマテリアライズド・ビュー・ログを作成します。

CREATE MATERIALIZED VIEW LOG ON oe.categories_tab WITH OBJECT ID;

オブジェクト表に対するマテリアライズド・ビュー・ログを作成する場合には、WITH OBJECT ID句が必要です。

マスター・データベースの同じ型と同じオブジェクト識別子を持つoe.category_typ型をマテリアライズド・ビュー・データベースに作成した後、次のSQL文のようにOF type句を使用して、oe.categories_tabオブジェクト表に基づくオブジェクト・マテリアライズド・ビューを作成できます。

CREATE MATERIALIZED VIEW oe.categories_objmv OF oe.category_typ 
   REFRESH FAST
   AS SELECT * FROM oe.categories_tab@orc1.example.com;

この場合、typeoe.category_typです。

ノート:

型は、マテリアライズド・ビュー・データベースとマスター・データベースで同じである必要があります。詳細は、「レプリケーション・データベースでの型の一致」を参照してください。

39.2 リフレッシュ・グループの作成

リフレッシュ・グループ内の関連のあるマテリアライズド・ビュー間のトランザクション一貫性を確保するために、リフレッシュ・グループにマテリアライズド・ビューを追加します。

リフレッシュ・グループがリフレッシュされると、特定のリフレッシュ・グループに追加されているすべてのマテリアライズド・ビューが同時にリフレッシュされます。

  1. リフレッシュ・グループを作成し、それにマテリアライズド・ビューを追加するために、必要な権限を持つ管理ユーザーとしてマテリアライズド・ビュー・データベースに接続します。
  2. リフレッシュ・グループを作成するために、DBMS_REFRESH.MAKEプロシージャを実行します。
  3. リフレッシュ・グループにマテリアライズド・ビューを追加するために、DBMS_REFRESH.ADDプロシージャを1回以上実行します。

例39-4 リフレッシュ・グループの作成

この例では、リフレッシュ・グループを作成し、それに2つのマテリアライズド・ビューを追加します。

BEGIN
   DBMS_REFRESH.MAKE (
      name => 'mviewadmin.hr_refg',
      list => '', 
      next_date => SYSDATE, 
      interval => 'SYSDATE + 1/24',
      implicit_destroy => FALSE, 
      rollback_seg => '',
      push_deferred_rpc => TRUE, 
      refresh_after_errors => FALSE);
END;
/

BEGIN
    DBMS_REFRESH.ADD (
      name => 'mviewadmin.hr_refg',
      list => 'hr.countries_mv1',
      lax => TRUE);
END;
/

BEGIN
    DBMS_REFRESH.ADD (
      name => 'mviewadmin.hr_refg',
      list => 'hr.departments_mv1',
      lax => TRUE);
END;
/

39.3 マテリアライズド・ビューのリフレッシュ

マテリアライズド・ビューのリフレッシュにより、マテリアライズド・ビューのマスターのデータとマテリアライズド・ビューのデータが同期化されます。

リフレッシュ・グループのすべてのマテリアライズド・ビューを一度にリフレッシュすることも、マテリアライズド・ビューを個別にリフレッシュすることもできます。マテリアライズド・ビュー・データベースで複数のマテリアライズド・ビューに依存するアプリケーションがある場合、アプリケーションで使用されるすべてのマテリアライズド・ビューでデータのトランザクション一貫性を維持するために、リフレッシュ・グループの使用をお薦めします。

  1. リフレッシュ・グループまたは個々のマテリアライズド・ビューをリフレッシュするために、必要な権限を持つユーザーとしてマテリアライズド・ビュー・データベースに接続します。
  2. 次のいずれかを行います:
    • リフレッシュ・グループをリフレッシュするために、DBMS_REFRESH.REFRESHプロシージャを実行します。

    • 個々のマテリアライズド・ビューをリフレッシュするために、DBMS_MVIEW.REFRESH プロシージャを実行します。

例39-5 リフレッシュ・グループのリフレッシュ

次の例では、hr_refgリフレッシュ・グループがリフレッシュされます。

EXECUTE DBMS_REFRESH.REFRESH ('hr_refg');

例39-6 個々のマテリアライズド・ビューのリフレッシュ

次の例では、hr.departments_mvマテリアライズド・ビューがリフレッシュされます。

BEGIN
   DBMS_MVIEW.REFRESH (
     list   =>  'hr.departments_mv', 
     method =>  '?');
END;
/

ノート:

マテリアライズド・ビューをリフレッシュするためにDBMS_MVIEW.REFRESH_ALL_MVIEWSまたはDBMS_MVIEW.REFRESH_DEPENDENTプロシージャを使用しないでください。レプリケーション環境のマテリアライズド・ビューは、DBMS_REFRESH.REFRESHまたはDBMS_MVIEW.REFRESHプロシージャを使用してリフレッシュします。

関連項目:

39.4 マテリアライズド・ビューの高速リフレッシュ機能に関する判断

REFRESH FAST句を使用してマテリアライズド・ビューの作成を試みるか、DBMS_MVIEW.EXPLAIN_MVIEWプロシージャを使用することにより、マテリアライズド・ビューが高速リフレッシュ可能かどうかを判断できます。

高速リフレッシュでは、マテリアライズド・ビュー・ログを使用して、最後のリフレッシュ以降に変更が加えられた行のみを更新します。マテリアライズド・ビューが高速リフレッシュ可能かどうかを判断するには、REFRESH FAST句を使用してマテリアライズド・ビューを作成します。マテリアライズド・ビューが副問合せマテリアライズド・ビューの制限に違反した場合、Oracleデータベースはエラーを返します。強制リフレッシュを指定した場合、Oracleデータベースでは高速リフレッシュが実行できなければ完全リフレッシュが自動的に実行されるため、エラーが返されない場合があります。

また、DBMS_MVIEWパッケージ内のEXPLAIN_MVIEWプロシージャを使用して、既存のマテリアライズド・ビュー、あるいはまだ作成されていないマテリアライズド・ビューに関して次の情報を判断できます。

  • マテリアライズド・ビューの機能

  • 各機能を使用できるかどうか

  • 機能を使用できない場合にはできない理由

この情報は、VARRAYまたはMV_CAPABILITIES_TABLEに格納できます。この表に情報を格納する場合は、EXPLAIN_MVIEWプロシージャを実行する前に、Oracle_home/rdbms/adminディレクトリにあるutlxmv.sqlスクリプトを実行してこの表を作成する必要があります。

マテリアライズド・ビューの高速リフレッシュ機能を判断するには:

  1. マテリアライズド・ビュー・データベースに管理ユーザーとして接続します。
  2. 次のいずれかを行います:
    • REFRESH FAST句を使用してマテリアライズド・ビューを作成します。

    • DBMS_MVIEW.EXPLAIN_MVIEWプロシージャを実行します。

例39-7 FAST REFRESH句を使用したマテリアライズド・ビューの作成

CREATE MATERIALIZED VIEW oe.orders REFRESH FAST AS
 SELECT * FROM oe.orders@orc1.example.com o
 WHERE EXISTS
   (SELECT * FROM oe.customers@orc1.example.com c
    WHERE o.customer_id = c.customer_id AND c.credit_limit > 10000);

例39-8 既存マテリアライズド・ビューのリフレッシュ機能の判断

たとえば、oe.ordersマテリアライズド・ビューの機能を判断するには、次のように入力します。

EXECUTE DBMS_MVIEW.EXPLAIN_MVIEW ('oe.orders');

例39-9 まだ存在しないマテリアライズド・ビューのリフレッシュ機能の判断

または、マテリアライズド・ビューがまだ作成されていない場合は、その作成に使用する問合せを指定できます。

BEGIN
  DBMS_MVIEW.EXPLAIN_MVIEW ('SELECT * FROM oe.orders@orc1.example.com o
    WHERE EXISTS (SELECT * FROM oe.customers@orc1.example.com c
    WHERE o.customer_id = c.customer_id AND c.credit_limit > 500)');
END;
/

MV_CAPABILITIES_TABLEを問い合せて結果を表示します。

MV_CAPABILITIES_TABLEを問い合せて結果を表示します。

ノート:

MV_CAPABILITIES_TABLEは、事前作成されたコンテナ表に依存するマテリアライズド・ビューのリフレッシュ機能を示しません。たとえば、事前作成されたコンテナ表でのパーティション・メンテナンス操作の後に完全なリフレッシュが必要ですが、MV_CAPABILITIES_TABLEではこの制限が示されません。

39.5 新規マテリアライズド・ビュー・データベースの追加

1つ以上のマテリアライズド・ビュー・データベースを含むマテリアライズド・ビュー環境を作成した後、新しいマテリアライズド・ビュー・データベースの追加が必要な場合があります。

次の2つの条件がどちらも成立する場合は、新規マテリアライズド・ビュー・データベースに作成したマテリアライズド・ビューを高速リフレッシュしようとしたときに問題が発生することがあります。

  • 新規マテリアライズド・ビュー・データベースのマテリアライズド・ビューと、他のマテリアライズド・ビュー・データベースの既存マテリアライズド・ビューが、同一のマスター表に基づいている。

  • 新規マテリアライズド・ビュー・データベースに新規マテリアライズド・ビューを作成中に、既存のマテリアライズド・ビューがリフレッシュされる可能性がある。

問題が発生するのは、新規マテリアライズド・ビューが最初の高速リフレッシュを実行する前に、マスター表のマテリアライズド・ビュー・ログがパージされたときです。このようなときに新規マテリアライズド・ビュー・データベースでマテリアライズド・ビューを高速リフレッシュしようとすると、次のエラーが発生することがあります。

ORA-12004 REFRESH FAST cannot be used for materialized view materialized_view_name
ORA-12034 materialized view log on materialized_view_name younger than last refresh

これらのエラーを受け取った場合の解決策は、新規マテリアライズド・ビューの完全リフレッシュを実行することのみです。この問題を回避するには、本番マテリアライズド・ビューを作成する前に、新規マテリアライズド・ビュー・データベースにダミー・マテリアライズド・ビューを作成します。ダミーのマテリアライズド・ビューを作成することにより、本番のマテリアライズド・ビューを作成中にマテリアライズド・ビュー・ログがパージされなくなります。

マテリアライズド・ビュー・データベースにダミー・マテリアライズド・ビューを作成することを選択する場合は、次のステップを実行します。

  1. マスター表に基づいてdummy_mviewというダミー・マテリアライズド・ビューを作成します。たとえば、salesというマスター表に基づいてダミー・マテリアライズド・ビューを作成するには、新規マテリアライズド・ビュー・データベースで次の文を発行します。
    CREATE MATERIALIZED VIEW dummy_mview REFRESH FAST AS 
      SELECT * FROM pr.sales@orc1.example.com WHERE 1=0; 
    
  2. 新規マテリアライズド・ビュー・データベースに本番マテリアライズド・ビューを作成します。
  3. 新規マテリアライズド・ビュー・データベースで本番マテリアライズド・ビューの高速リフレッシュを実行します。
  4. ダミー・マテリアライズド・ビューを削除します。

39.6 マテリアライズド・ビュー・ログの監視

マスター・データベースのマテリアライズド・ビュー・ログの情報を表示するために、問合せを実行できます。

39.6.1 マスター・データベースにあるマテリアライズド・ビュー・ログの情報のリスト表示

マテリアライズド・ビュー・ログにより、マスターをベースとするマテリアライズド・ビューで高速リフレッシュを実行できます。マスターには、マスター表とマスター・マテリアライズド・ビューがあります。

マスターをベースとするマテリアライズド・ビュー・ログがある場合は、この項の問合せを使用して、このログに関する次の情報をリストできます。

  • マテリアライズド・ビュー・ログ・データが格納される各ログ表の名前

  • 各マテリアライズド・ビュー・ログの所有者

  • 各マテリアライズド・ビュー・ログがベースとするマスター

  • マテリアライズド・ビュー・ログが行IDマテリアライズド・ビュー・ログかどうか

  • マテリアライズド・ビュー・ログが主キー・マテリアライズド・ビュー・ログかどうか

  • マテリアライズド・ビュー・ログがオブジェクトIDマテリアライズド・ビュー・ログかどうか

  • マテリアライズド・ビュー・ログにフィルタ列があるかどうか

この情報を表示するには、次のステップを実行します。

  1. マスター・データベースに管理ユーザーとして接続します。
  2. 次の問合せを実行します。
    COLUMN LOG_TABLE HEADING 'Log Table' FORMAT A20
    COLUMN LOG_OWNER HEADING 'Log|Owner' FORMAT A5
    COLUMN MASTER HEADING 'Master' FORMAT A15
    COLUMN ROWIDS HEADING 'Row|ID?' FORMAT A3
    COLUMN PRIMARY_KEY HEADING 'Primary|Key?' FORMAT A7
    COLUMN OBJECT_ID HEADING 'Object|ID?' FORMAT A6
    COLUMN FILTER_COLUMNS HEADING 'Filter|Columns?' FORMAT A8
     
    SELECT DISTINCT LOG_TABLE, 
           LOG_OWNER, 
           MASTER, 
           ROWIDS, 
           PRIMARY_KEY, 
           OBJECT_ID,
           FILTER_COLUMNS 
        FROM DBA_MVIEW_LOGS 
        ORDER BY 1;
    

出力は次のようになります。

                     Log                   Row Primary Object Filter
Log Table            Owner Master          ID? Key?    ID?    Columns?
-------------------- ----- --------------- --- ------- ------ --------
MLOG$_COUNTRIES      HR    COUNTRIES       NO  YES     NO     NO
MLOG$_DEPARTMENTS    HR    DEPARTMENTS     NO  YES     NO     NO
MLOG$_EMPLOYEES      HR    EMPLOYEES       NO  YES     NO     NO
MLOG$_JOBS           HR    JOBS            NO  YES     NO     NO
MLOG$_JOB_HISTORY    HR    JOB_HISTORY     NO  YES     NO     NO
MLOG$_LOCATIONS      HR    LOCATIONS       NO  YES     NO     NO
MLOG$_REGIONS        HR    REGIONS         NO  YES     NO     NO

39.6.2 マテリアライズド・ビュー・ログを使用するマテリアライズド・ビューのリスト表示

あるマテリアライズド・ビュー・ログを複数のマテリアライズド・ビューが使用する場合があります。

マスターをベースとするマテリアライズド・ビュー・ログがある場合は、この項の問合せを使用して、各ログを使用するマテリアライズド・ビューに関する次の情報をリストできます。

  • マテリアライズド・ビュー・ログ・データが格納される各ログ表の名前

  • 各マテリアライズド・ビュー・ログの所有者

  • 各マテリアライズド・ビュー・ログがベースとするマスター

  • マテリアライズド・ビュー・ログを使用する各マテリアライズド・ビューの、マテリアライズド・ビュー識別番号

  • マテリアライズド・ビュー・ログを使用する各マテリアライズド・ビューの名前

この情報を表示するには、次のステップを実行します。

  1. マスター・データベースに管理ユーザーとして接続します。
  2. 次の問合せを実行します。
    COLUMN LOG_TABLE HEADING 'Mview|Log Table' FORMAT A20
    COLUMN LOG_OWNER HEADING 'Mview|Log Owner' FORMAT A10
    COLUMN MASTER HEADING 'Master' FORMAT A20
    COLUMN MVIEW_ID HEADING 'Mview|ID' FORMAT 9999
    COLUMN NAME HEADING 'Mview Name' FORMAT A20
     
    SELECT L.LOG_TABLE, L.LOG_OWNER, B.MASTER, B.MVIEW_ID, R.NAME  
    FROM ALL_MVIEW_LOGS L, ALL_BASE_TABLE_MVIEWS B, ALL_REGISTERED_MVIEWS R
    WHERE B.MVIEW_ID = R.MVIEW_ID
    AND B.OWNER = L.LOG_OWNER
    AND B.MASTER = L.MASTER;
    

出力は次のようになります。

Mview                Mview                           Mview
Log Table            Log Owner  Master                  ID Mview Name
-------------------- ---------- -------------------- ----- --------------------
MLOG$_COUNTRIES      HR         COUNTRIES               21 COUNTRIES_MV1
MLOG$_DEPARTMENTS    HR         DEPARTMENTS             22 DEPARTMENTS_MV1
MLOG$_EMPLOYEES      HR         EMPLOYEES               23 EMPLOYEES_MV1
MLOG$_JOBS           HR         JOBS                    24 JOBS_MV1
MLOG$_JOB_HISTORY    HR         JOB_HISTORY             25 JOB_HISTORY_MV1
MLOG$_LOCATIONS      HR         LOCATIONS               26 LOCATIONS_MV1
MLOG$_REGIONS        HR         REGIONS                 27 REGIONS_MV1

39.7 マテリアライズド・ビューの監視

マテリアライズド・ビューおよびリフレッシュ・グループの情報を表示するために、問合せを実行できます。

39.7.1 マテリアライズド・ビューの情報のリスト表示

マテリアライズド・ビューの情報を表示するために、問合せを実行できます。

39.7.1.1 マテリアライズド・ビューのマスター・データベース情報のリスト表示

マテリアライズド・ビューのマスター・データベース情報のリストを表示するには、DBA_MVIEWSビューの問合せを実行します。

レプリケーション・データベースの各マテリアライズド・ビューのマスター・データベースを表示し、マテリアライズド・ビューが高速リフレッシュ可能かどうかを確認するには、次のステップを実行します。

  1. マテリアライズド・ビュー・データベースに管理ユーザーとして接続します。
  2. 次の問合せを実行します。
    COLUMN MVIEW_NAME HEADING 'Materialized|View Name' FORMAT A15
    COLUMN OWNER HEADING 'Owner' FORMAT A10
    COLUMN MASTER_LINK HEADING 'Master Link' FORMAT A30
    COLUMN Fast_Refresh HEADING 'Fast|Refreshable?' FORMAT A16
    
    SELECT MVIEW_NAME, 
           OWNER, 
           MASTER_LINK,  
           DECODE(FAST_REFRESHABLE, 
                  'NO', 'NO',
                  'DML', 'YES',    
                  'DIRLOAD', 'DIRECT LOAD ONLY',
                  'DIRLOAD_DML', 'YES',
                  'DIRLOAD_LIMITEDDML', 'LIMITED') Fast_Refresh
        FROM DBA_MVIEWS;
    

出力は次のようになります。

Materialized                                              Fast
View Name       Owner      Master Link                    Refreshable?
--------------- ---------- ------------------------------ ----------------
COUNTRIES_MV1   HR         @ORC1.EXAMPLE.COM              YES
DEPARTMENTS_MV1 HR         @ORC1.EXAMPLE.COM              YES
EMPLOYEES_MV1   HR         @ORC1.EXAMPLE.COM              YES
JOBS_MV1        HR         @ORC1.EXAMPLE.COM              YES
JOB_HISTORY_MV1 HR         @ORC1.EXAMPLE.COM              YES
LOCATIONS_MV1   HR         @ORC1.EXAMPLE.COM              YES
REGIONS_MV1     HR         @ORC1.EXAMPLE.COM              YES
39.7.1.2 マテリアライズド・ビューのプロパティのリスト表示

マテリアライズド・ビューのプロパティのリストを表示するには、DBA_MVIEWSビューの問合せを実行します。

この項の問合せを使用して、カレント・レプリケーション・データベースにあるマテリアライズド・ビューに関する次の情報をリストできます。

  • 各マテリアライズド・ビューの名前

  • 各マテリアライズド・ビューの所有者

  • 各マテリアライズド・ビューが使用するリフレッシュ方法がCOMPLETEFORCEFASTまたはNEVERのいずれであるか

  • 各マテリアライズド・ビューがリフレッシュされた最後の日付

この情報を表示するには、次のステップを実行します。

  1. マテリアライズド・ビュー・データベースに管理ユーザーとして接続します。

  2. 次の問合せを実行し、この情報をリストします。

この情報を表示するには、次のステップを実行します。

  1. マテリアライズド・ビュー・データベースに管理ユーザーとして接続します。
  2. 次の問合せを実行します。
    COLUMN MVIEW_NAME HEADING 'Materialized|View Name' FORMAT A15
    COLUMN OWNER HEADING 'Owner' FORMAT A10
    COLUMN REFRESH_METHOD HEADING 'Refresh|Method' FORMAT A10
    COLUMN LAST_REFRESH_DATE HEADING 'Last|Refresh|Date'
    COLUMN LAST_REFRESH_TYPE HEADING 'Last|Refresh|Type' FORMAT A15
    
    SELECT MVIEW_NAME, 
           OWNER,
           REFRESH_METHOD, 
           LAST_REFRESH_DATE, 
           LAST_REFRESH_TYPE
        FROM DBA_MVIEWS; 
    

出力は次のようになります。

                                        Last      Last
Materialized               Refresh    Refresh   Refresh
View Name       Owner      Method     Date      Type
--------------- ---------- ---------- --------- ---------------
COUNTRIES_MV1   HR         FAST       21-OCT-03 FAST
DEPARTMENTS_MV1 HR         FAST       21-OCT-03 FAST
EMPLOYEES_MV1   HR         FAST       21-OCT-03 FAST
JOBS_MV1        HR         FAST       21-OCT-03 FAST
JOB_HISTORY_MV1 HR         FAST       21-OCT-03 FAST
LOCATIONS_MV1   HR         FAST       21-OCT-03 FAST
REGIONS_MV1     HR         FAST       21-OCT-03 FAST

39.7.2 マテリアライズド・ビュー・データベースにあるリフレッシュ・グループの情報のリスト表示

マテリアライズド・ビュー・データベースの各リフレッシュ・グループは、設定された間隔でリフレッシュ・グループ内のマテリアライズド・ビューをリフレッシュするリフレッシュ・ジョブに関連付けられています。

DBA_REFRESHデータ・ディクショナリ・ビューの問合せにより、マテリアライズド・ビュー・データベースのリフレッシュ・ジョブに関する次の情報をリストできます。

  • リフレッシュ・グループの名前。

  • リフレッシュ・グループの所有者。

  • リフレッシュ・ジョブが中断されているかどうか。

  • 次回リフレッシュ・ジョブが実行される日付および時刻。

  • リフレッシュ・ジョブの現在の間隔設定。間隔設定では、ジョブの開始と同じジョブの次回の開始の間の、時間の長さを指定します。

この情報を表示するには、次のステップを実行します。

  1. マテリアライズド・ビュー・データベースに管理ユーザーとして接続します。
  2. 次の問合せを実行します。
    COLUMN RNAME HEADING 'Refresh|Group|Name' FORMAT A10
    COLUMN ROWNER HEADING 'Refresh|Group|Owner' FORMAT A10
    COLUMN BROKEN HEADING 'Broken?' FORMAT A7
    COLUMN next_refresh HEADING 'Next Refresh'
    COLUMN INTERVAL HEADING 'Interval' FORMAT A20
    
    SELECT RNAME, 
    	       ROWNER, 
           BROKEN, 
           TO_CHAR(NEXT_DATE, 'DD-MON-YYYY HH:MI:SS AM') next_refresh, 
           INTERVAL 
        FROM DBA_REFRESH 
        ORDER BY 1;
    

出力は次のようになります。

Refresh    Refresh
Group      Group
Name       Owner      Broken? Next Refresh            Interval
---------- ---------- ------- ----------------------- --------------------
HR_REFG    MVIEWADMIN N       24-OCT-2003 07:18:44 AM SYSDATE + 1/24

Broken?列のNは、ジョブが中断されていないことを意味します。したがって、リフレッシュ・ジョブは次回開始時刻に実行されます。この列のYは、ジョブが中断されていることを意味します。

39.7.3 マテリアライズド・ビュー・データベースにある各リフレッシュ・ジョブのジョブIDの判定

マテリアライズド・ビュー・データベースの各リフレッシュ・ジョブのジョブ識別番号を判断するには、DBA_REFRESHおよびDBA_JOBSビューの問合せを実行します。

問合せを実行して、マテリアライズド・ビュー・データベースのリフレッシュ・ジョブに関する次の情報をリストできます。

  • 各リフレッシュ・ジョブのジョブ識別番号。Oracle Schedulerによって作成された各ジョブには、一意の識別番号が割り当てられます。

  • 権限スキーマ。権限スキーマとは、ジョブに適用されるデフォルトの権限を所有するスキーマです。

  • 各リフレッシュ・ジョブを所有するスキーマ。

  • ジョブがリフレッシュするリフレッシュ・グループの名前。

  • リフレッシュ・ジョブのステータスが通常か中断か。

この情報を表示するには、次のステップを実行します。

  1. マテリアライズド・ビュー・データベースに管理ユーザーとして接続します。
  2. 次の問合せを実行します。
    COLUMN JOB HEADING 'Job ID' FORMAT 999999
    COLUMN PRIV_USER HEADING 'Privilege|Schema' FORMAT A10
    COLUMN RNAME HEADING 'Refresh|Group|Name' FORMAT A10
    COLUMN ROWNER HEADING 'Refresh|Group|Owner' FORMAT A10
    COLUMN BROKEN HEADING 'Broken?' FORMAT A7
    
    SELECT J.JOB, 
           J.PRIV_USER, 
           R.ROWNER, 
           R.RNAME, 
           J.BROKEN
        FROM DBA_REFRESH R, DBA_JOBS J 
        WHERE R.JOB = J.JOB
        ORDER BY 1;
    

出力は次のようになります。

                   Refresh    Refresh
        Privilege  Group      Group
 Job ID Schema     Owner      Name       Broken?
------- ---------- ---------- ---------- -------
     21 MVIEWADMIN MVIEWADMIN HR_REFG    N

Broken?列のNは、ジョブが中断されていないことを意味します。したがって、ジョブは次回開始時刻に実行されます。この列のYは、ジョブが中断されていることを意味します。

39.7.4 現在リフレッシュしているマテリアライズド・ビューの判定

現在リフレッシュ中のマテリアライズド・ビューを判断するには、V$MVREFRESHビューの問合せを実行します。

現在リフレッシュ中のマテリアライズド・ビューを表示するには、次のステップを実行します。

  1. マテリアライズド・ビュー・データベースに管理ユーザーとして接続します。
  2. 次の問合せを実行します。
    COLUMN SID HEADING 'Session|Identifier' FORMAT 9999
    COLUMN SERIAL# HEADING 'Serial|Number' FORMAT 999999
    COLUMN CURRMVOWNER HEADING 'Owner' FORMAT A15
    COLUMN CURRMVNAME HEADING 'Materialized|View' FORMAT A25
    
    SELECT * FROM V$MVREFRESH;
    

出力は次のようになります。

   Session  Serial                 Materialized
Identifier  Number Owner           View
---------- ------- --------------- -------------------------
        19     233 HR              COUNTRIES_MV
         5     647 HR              EMPLOYEES_MV