正直、使わなさ過ぎてマテリアライズドビューって何?って感じではあるけど、たまにフラット出てくるのでメモ。
詳細は、Oracleのリファレンス見てください。
https://docs.oracle.com/cd/E16338_01/server.112/b56311/statviews_1153.htm
マテリアライズドビューの一覧取得
ログインユーザの一覧取得
select * from USER_MVIEWS ;
全ユーザの一覧取得
select * from ALL_MVIEWS ;
マテリアライズドビューって何?
公式リファレンス見ても良く分からんw
https://docs.oracle.com/cd/E57425_01/121/REPLN/repmview.htm
要は、テーブルのコピーを作れる感じ?
後は、ビューとして取得するデータをテーブルとして持っておける。
で、元のテーブルが更新されたら、マテリアライズドビューも合せて更新されるから、基本的に最新のデータを保持するって感じか。
wikiだと、
って書いてあるし、ビューの取得でも時間がかかるものをキャッシュみたいな感じでテーブルに登録できるみたいですね。
しかも、実態はテーブルなので、インデックスを定義して検索時間の短縮とかに使えると。
まとめ
多分、大規模サイトとか構築するなら、必要になってくるんだろうなぁって感じで、今は漠然と理解した。
事の発端は、業務で仕様に関連するテーブルやらを調査しなきゃいけなくなったときに、明らかに社内の命名規則上ではビューなのに、テーブルとして登録されているやつがいたからでした。
SQLDeveloperで見ても、テーブルのフォルダに分類されてるので、本当にビューなのか?っていうところから、まず、ビューなのか、ビューじゃなければマテリアライズドビューじゃないのか?ってことで、確認方法を調べてみた。
中々いいのかもしれないけど、現時点の業務では使いどころが見当たらないやw