《Oracle命令语法速查》【 CREATE MATERIALIZED VIEW 】
マテリアライズドビュー(スナップショット)を作成する
CREATE { MATERIALIZED VIEW | SNAPSHOT } [ スキーマ . ] マテリアライズドビュー名 →
→┬──────────────┬→
└ OF [ スキーマ . ] タイプ名 ┘
→┬───────────────────────────┬→
└ ( ┬ SCOPE FOR ( 列名 ) IS [ スキーマ . ] 表名 ┬ ) ┘
└ ← , ───────────────────┘
→┬────────────────────────────────────┬→
└ ORGANIZATION INDEX ┬──────────┬→ │
├ PCTTHRESHOLD 数値 ┤ │
├ COMPRESS 数値 ┤ │
└ NOCOMPRESS ────┘ │
→ [ INCLUDING 列名 ] OVERFLOW <SEGMENT_ATTRIBUTES句> ┘
→┬──────────────────────────────┬→
├ (*1) ───────────────────────────┤
└ ON PREBUILT TABLE [ { WITH | WITHOUT } REDUCED PRECISION ] ┘
→┬─────────────────────────┬→
├ USING NO INDEX ─────────────────┤
└ USING INDEX [ ┬ <PHYSICAL ATTRIBUTES句> ] ┬ ] ┘
├ TABLESPACE 表領域名 ┤
└ ← ────────────┘
→┬────────────────────────────────────┬→
├ REFRESH ┬─────────────────────────────┬┤
│ ├┬ FAST ────────────────────────┬┤│
│ ││[ 高速リフレッシュを行う(更新データのみ対象) ] │││
│ │├ COMPLETE ──────────────────────┤││
│ ││[ 完全リフレッシュを行う(全件対象) ] │││
│ │└ FORCE ───────────────────────┘││
│ │ [ 可能な場合は高速で、無理な場合は完全リフレッシュ ] ││
│ ├ ON { DEMAND | COMMIT } ─────────────────┤│
│ │[ リフレッシュタイミングを指定する ]││
│ ├ START WITH 日時 ────────────────────┤│
│ │[ 最初の自動リフレッシュを行う日時を日付形式で指定する ]││
│ ├ NEXT 日時 ────────────────────┤│
│ │[ 次回以降のリフレッシュ間隔を日付形式で指定する ]││
│ ├ WITH { PRIMARY KEY | ROWID } ──────────────┤│
│ │[ 更新行を識別する方法を指定する ]││
│ ├ (*2) ──────────────────────────┤│
│ └ ← ───────────────────────────┘│
└ NEVER REFRESH ────────────────────────────┘
→ [ FOR UPDATE ] →
[ マテリアライズドビューを更新可能にする ]
→┬──────────────────┬→
└ { DISABLE| ENABLE } QUERY REWRITE ┘
→ AS SELECT文 ;
[ マテリアライズドビューの問合せを指定する ]
(*1)
→┬┬───────────────────────────────┬┬→
│├ <SEGMENT ATTRIBUTES句> ──────────────────┤│
│├ column_properties ─────────────────────┤│
│├ CACHE ───────────────────────────┤│
││[ 読み込み値をバッファ内で最後に使用された端に配置する ]││
│├ NOCACHE ──────────────────────────┤│
││[ 読み込み値をバッファ内で最も使用されていない端に配置する ]││
│└ ← ─────────────────────────────┘│
└ CLUSTER クラスタ名 ( ┬ 列名 ┬ ) ───────────────┘
└ ← , ┘
[ 指定したクラスタの一部とする ]
┬────────────────┬→
├ <PARALLEL句> ────────┤
├ <TABLE PARTITION句> ─────┤
├ BUILD { IMMEDIATE | DEFERRED } ┤
└ ← ──────────────┘
(*2)
→ USING ┬ DEFAULT ┬────┬ ROLLBACK SEGMENT ────────────┬→
│ ├ MASTER ┤ │
│ └ LOCAL ┘ │
│[ 任意のロールバックセグメントをリフレッシュ時に使用する ] │
├┬────┬ ROLLBACK SEGMENT ロールバックセグメント名 ────┤
│├ MASTER ┤ │
│└ LOCAL ┘ │
│[ 指定したロールバックセグメントをリフレッシュ時に使用する ]│
└ ← ─────────────────────────────┘
[ MASTER : リモートマスタで使用するロールバックセグメント ]
[ LOCAL : ローカルリフレッシュグループで使用するロールバックセグメント ]