- PR -

View とは、ということで。

1
投稿者投稿内容
tun_chn
会議室デビュー日: 2006/11/25
投稿数: 7
投稿日時: 2006-11-28 23:56
View とは、ということで。

Virw = メモリ領域を永久消費

と考えておいて問題ないと思いますが、
その計算方法ご存知でしょうか。
Oracle の場合、View がどの領域(cpu, memory)に影響を与えているのか、
計算しようとした場合、どのテーブルを見るのが妥当でしょうか。

用途によっては、View を事前に作っておくことも、運用として
ありえることだと思いますが、
皆さんだったら、View に相当する SQL 文を毎回書いて処理させて
メモリ空間を開放するでしょうか。
カーニー
ぬし
会議室デビュー日: 2003/09/04
投稿数: 358
お住まい・勤務地: 東京
投稿日時: 2006-11-29 02:49
引用:

未記入さんの書き込み (2006-11-28 23:56) より:
View とは、ということで。

Virw = メモリ領域を永久消費

と考えておいて問題ないと思いますが、


RDBMSによりけりでしょうが、普通は問題大有りです。特にOracleなら確実に。

引用:

その計算方法ご存知でしょうか。
Oracle の場合、View がどの領域(cpu, memory)に影響を与えているのか、
計算しようとした場合、どのテーブルを見るのが妥当でしょうか。



v$db_object_cacheとかでしょうが、どうせせいぜい数100バイト程度なので、それを気にする人はみたことありません。無視しておいて下さい。

ビューはSELECT文に対する単なるエイリアスのようなものだと思っておけばいいです。
Desmo
大ベテラン
会議室デビュー日: 2004/03/24
投稿数: 149
投稿日時: 2006-11-29 10:42
Oracleでは、問い合わせがあると その際の実行計画と読み込まれたデータが SGAと呼ばれるメモリ領域にキャッシュされます。
問い合わせの際に 直接テーブルに対してSELECT文(等)を書いても、VIEWを使っても 結果は同じです。
SGAの管理はOracle自身が行うので、キャッシュされた情報をいつまで保持するかは(特に指定しない限りは)Oracleが勝手に判断します。
"メモリ領域を永久消費"というのが、このSGAにキャッシュされる領域を意味しているのであれば、その認識は誤っています。
少なくとも「リソースの節約のためにVIEWの利用を控える」なんて考え方は無いと思います。逆に「VIEWを使ったから抽出が高速になる」というものでもありません。
カーニーさんの回答と若干重複してしまいましたが、参考までに。
1

スキルアップ/キャリアアップ(JOB@IT)