[ORACLE]マテリアライズドビューの一覧を取得する

投稿日:


正直、使わなさ過ぎてマテリアライズドビューって何?って感じではあるけど、たまにフラット出てくるのでメモ。

詳細は、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







-ORACLE
-,

関連記事

SQL文中で全角文字を使うなと言われたので、ORACLEでJOIN句の条件式をCASE文で分岐させる

JOINの条件式にCase文を入れる http://blog.goo.ne.jp/ilikehobby/e/80b471f96f6d693b6c5df75f18591c0e SQL文中で全角文字を使う …

ORACLEでSPOOL処理の高速化を試す

ORACLEでSPOOL処理の高速化を考えてみた 事の発端は、お客様のお怒りでした・・・ なんで、お客さんに最新版のリリース時には、必ずスキーマ間の比較をすることを徹底しろと言われてしまったと。 まぁ …

no image

Oracleの再受験無料キャンペーンは5月31日まで

【ピアソンVUE専用】Oracle会場試験用受験チケット(電子チケット) 価格:26,720円 (2019/5/19 14:11時点) 感想(15件) 【ピアソンVUE専用】Oracleオンライン試験 …

[ORACLE]ora-12638 資格証明の取出しに失敗しましたと表示される原因と対処法

客先で起こった内容。 状況 客先のdumpを取得するために、用意されているバッチファイルを実行した時に発生 ora-12638 資格情報の取出しに失敗しました バッチファイルの黒い画面で一瞬だけエラー …

[ORACLE]ORA-24344:正常に終了しましたが、コンパイル・エラーがあります。

全然、正常に終われてねぇんじゃん?? って思った。 ビューの作成時に発生。 ネットで検索するも、明確な回答は見当たらず・・・ ただ、エラーには違いないので、ビューが正しく作成されていないことになる。 …


カテゴリー