マテリアライズド・ビューの手動リフレッシュ
Oracleではインデックス付きのビューであるマテリアライズド・ビューを作成することができますが、データのリフレッシュの方法やタイミングによっては、最新のデータが反映されていない場合があるため、試験時などで即座にデータが反映されてほしい時は、手動でリフレッシュをしてやる必要があります。
目次
- 手動リフレッシュの方法
- 余談)マテリアライズド・ビューの呼び方について
- 参考リンク
手動リフレッシュの方法
マテリアライズド・ビューを手動でリフレッシュするには、以下のSQLを実行します。
EXEC DBMS_MVIEW.REFRESH('MV_EXAMPLE');
上記SQLの「MV_EXAMPLE」はマテリアライズド・ビューの名前です。
ちなみにSQL Developerからも更新したいマテリアライズド・ビューを右クリックして、「リフレッシュ・オプション > すぐに強制リフレッシュ」を選択することで強制的にリフレッシュが可能です。
- リフレッシュ・タイプ(F):高速リフレッシュ
- リフレッシュ・タイプ(C):完全リフレッシュ
なお、高速リフレッシュは、更新のあったデータだけをリフレッシュする方法ですが、事前に参照元のテーブルに対応するマテリアライズド・ビュー・ログを作成しておかないと失敗するので、作成していない場合は完全リフレッシュで全データの更新を行いましょう。
余談)マテリアライズド・ビューの呼び方について
「マテリアライズド・ビュー」って口に出して言うと、ちょっと噛んでしまいそうですし、お世辞にも言いやすい言葉ではないですよね。
そのためか、以前携わったプロジェクトでは、メンバー全員から「マテビュー」と呼ばれていました。マテリアライズド・ビューに関連する記事を調べてもマテビューという呼び方がチラホラと見受けられるので問題なさそうです。
「マテビュー」なら噛んでしまう心配がないので、私も安心して口にすることができます。
ただし、客先で話す機会があった場合は...どうなんでしょうね。通じるならマテビューでもOKって感じでしょうか。