2019.4.19
2020.1.7

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

Oracleではインデックス付きのビューであるマテリアライズド・ビューを作成することができますが、データのリフレッシュの方法やタイミングによっては、最新のデータが反映されていない場合があるため、試験時などで即座にデータが反映されてほしい時は、手動でリフレッシュをしてやる必要があります。

目次

  • 手動リフレッシュの方法
  • 余談)マテリアライズド・ビューの呼び方について
  • 参考リンク

手動リフレッシュの方法

マテリアライズド・ビューを手動でリフレッシュするには、以下のSQLを実行します。


EXEC DBMS_MVIEW.REFRESH('MV_EXAMPLE');

上記SQLの「MV_EXAMPLE」はマテリアライズド・ビューの名前です。

ちなみにSQL Developerからも更新したいマテリアライズド・ビューを右クリックして、「リフレッシュ・オプション > すぐに強制リフレッシュ」を選択することで強制的にリフレッシュが可能です。

  • リフレッシュ・タイプ(F):高速リフレッシュ
  • リフレッシュ・タイプ(C):完全リフレッシュ

なお、高速リフレッシュは、更新のあったデータだけをリフレッシュする方法ですが、事前に参照元のテーブルに対応するマテリアライズド・ビュー・ログを作成しておかないと失敗するので、作成していない場合は完全リフレッシュで全データの更新を行いましょう。

余談)マテリアライズド・ビューの呼び方について

「マテリアライズド・ビュー」って口に出して言うと、ちょっと噛んでしまいそうですし、お世辞にも言いやすい言葉ではないですよね。

そのためか、以前携わったプロジェクトでは、メンバー全員から「マテビュー」と呼ばれていました。マテリアライズド・ビューに関連する記事を調べてもマテビューという呼び方がチラホラと見受けられるので問題なさそうです。

「マテビュー」なら噛んでしまう心配がないので、私も安心して口にすることができます。

ただし、客先で話す機会があった場合は...どうなんでしょうね。通じるならマテビューでもOKって感じでしょうか。

参考リンク

Oracle】関連記事