マテリアライズド・ビュー とは、ひとつ以上の (又はビュー、のマテリアライズド・ビュー)を問い合わせた結果を含むスキーマオブジェクトである。マテリアライズド・ビューの基となる表のことをマスター表と呼ぶ。参照を行なうたびに実表を問い合わせるビューと異なり、マスター表への問い合わせ結果を含んでいるため、参照を高速に行なえる。ただし、更新は遅くなる。

スポンサーリンク

マテリアライズド・ビューに関するSQL

マテリアライズド・ビューに関するSQL一覧
SQL 説明
CREATE MATERIALIZED VIEW マテリアライズド・ビューを作成する。
ALTER MATERIALIZED VIEW マテリアライズド・ビューを変更する。
DROP MATERIALIZED VIEW マテリアライズド・ビューを削除する。

マテリアライズドビューに関するシステム権限

マテリアライズドビューを作成、変更、及び削除するには、次に示すシステム権限が必要である。

マテリアライズドビューに関するデータディクショナリビュー一覧
システム権限 説明
CREATE MATERIALIZED VIEW 自分のスキーマ内でマテリアライズドビューを作成、変更、削除できる。
CREATE ANY MATERIALIZED VIEW 他のユーザのスキーマ内にマテリアライズドビューを作成できる。
ALTER ANY MATERIALIZED VIEW 他のユーザのスキーマ内にあるマテリアライズドビューを変更できる。
DROP ANY MATERIALIZED VIEW 他のユーザのスキーマ内にあるマテリアライズドビューを削除できる。
CREATE TABLE いずれかのテーブル作成権限が必要である。
CREATE ANY TABLE
SELECT ANY TABLE 他のユーザのスキーマ内にあるテーブルをマスター表にできる。

マテリアライズド・ビューに関するデータディクショナリビュー

データディクショナリビュー 説明
ALL_MVIEWS 現在のユーザがアクセスできるマテリアライズド・ビューを示すデータディクショナリビュー
DBA_MVIEWS データベース内すべてのマテリアライズド・ビューを示すデータディクショナリビュー
USER_MVIEWS 現在のユーザが所有するマテリアライズド・ビューを示すデータディクショナリビュー

マテリアライズド・ビューを定義する問い合わせを確認する例を示す。

SELECT QUERY FROM USER_MVIEWS WHERE MVIEW_NAME = 'example';

マテリアライズド・ビューをリフレッシュする

マテリアライズド・ビューを手動でリフレッシュするには、SQL*PlusのEXECUTEコマンドでDBMS_MVIEWパッケージのREFRESHプロシージャを実行する。

EXECUTE DBMS_MVIEW.REFRESH(name)
EXECUTE DBMS_MVIEW.REFRESH(name, method)
name

リフレッシュするマテリアライズド・ビューを指定する。

method

リフレッシュ方法を指定する。

方法 説明
c 完全リフレッシュ
f 高速リフレッシュ
? 強制リフレッシュ

マテリアライズド・ビューの元となるマスター・マテリアライズド・ビューをDROP MATERIALIZED VIEWで削除すると、マテリアライズド・ビューのリフレッシュはエラーになる。 マスター・マテリアライズド・ビューを一度削除すると、CREATE MATERIALIZED VIEWで同じ名前のマスター・マテリアライズド・ビューを作成しても、マテリアライズド・ビューのリフレッシュはエラーになる。

マテリアライズド・ビューを手動でリフレッシュする例を示す。

EXEC DBMS_MVIEW.REFRESH('mview1', 'c')

マテリアライズド・ビュー・ログ

マテリアライズド・ビュー・ログとは、マテリアライズド・ビューの基となるマスター表への変更を格納するスキーマオブジェクトである。マテリアライズド・ビュー・ログがある場合、マテリアライズド・ビュー・ログを使用してマテリアライズド・ビューがリフレッシュされる。これを増分リフレッシュ又は高速リフレッシュと呼ぶ。

マテリアライズド・ビュー・ログに関するSQL

マテリアライズド・ビュー・ログに関するSQL一覧
SQL 説明
CREATE MATERIALIZED VIEW LOG マテリアライズド・ビュー・ログを作成する。
ALTER MATERIALIZED VIEW LOG マテリアライズド・ビュー・ログを変更する。
DROP MATERIALIZED VIEW LOG マテリアライズド・ビュー・ログを削除する。

CREATE MATERIALIZED VIEW LOG

CREATE MATERIALIZED VIEW LOGは、マテリアライズド・ビュー・ログを作成するSQL文である。

CREATE MATERIALIZED VIEW LOG ON [schema.]table
schema

マテリアライズド・ビュー・ログを作成する表のスキーマを指定する。スキーマの指定を省略した場合、自スキーマのテーブルのマテリアライズド・ビュー・ログを作成する。

table

マテリアライズド・ビュー・ログを作成する表を指定する。

ALTER MATERIALIZED VIEW LOG

ALTER MATERIALIZED VIEW LOGは、マテリアライズド・ビュー・ログを変更するSQL文である。

ALTER MATERIALIZED VIEW LOG [FORCE] ON [schema.]table
schema

マテリアライズド・ビュー・ログを変更する表のスキーマを指定する。スキーマの指定を省略した場合、自スキーマのテーブルのマテリアライズド・ビュー・ログを作成する。

table

マテリアライズド・ビュー・ログを変更する表を指定する。

DROP MATERIALIZED VIEW LOG

DROP MATERIALIZED VIEW LOGは、マテリアライズド・ビュー・ログを削除するSQL文である。

DROP MATERIALIZED VIEW LOG ON [schema.]table
schema

マテリアライズド・ビュー・ログを削除する表のスキーマを指定する。スキーマの指定を省略した場合、自スキーマのテーブルのマテリアライズド・ビュー・ログを作成する。

table

マテリアライズド・ビュー・ログを削除する表を指定する。

スポンサーリンク