• 締切済み

ビュー表の使い方

環境はOracle8iです。 とある業務で、グループ関数を使ったビュー表を作り、更にそこからグループ化する、というのをやっています。 CREATE VIEW V_emp AS SELECT A , B , SUM(C) AS X FROM emp GROUP BY A , B ; を作った後に、 SELECT A , SUM(B) , SUM(X) FROM V_emp GROUP BY A ; と問い合わせる、みたいなかんじです。 なんとなく、一方で集計結果を維持したまま、もう一回集計をかけるというのが、 データベースにとっては負担のような気がするのですが、実際はどうなのでしょう? 若しくはもっとスマートなやり方があるのでしょうか。

みんなの回答

  • nitorin
  • ベストアンサー率55% (11/20)
回答No.2

こんにちは。 負荷がかかっているかどうなのかについては Oracleのパフォーマンスチューニングの調査フェーズで、 tkprofとかSQLトレースを使用して、どのようなアクセスパス になっているかを行います。これにより、SQLに対してのCPU使用率や 論理・物理読込回数が明確になります。 (つまり、ご自身で確認できるという事です。) わりと、簡単にできますので一度トレースをとってみてはいかが でしょうか?

参考URL:
http://www.systeminfinity.co.jp/sub/tech/doc/oracle/tkprof.html
noname#91725
質問者

お礼

ご回答ありがとうございます。 ご紹介いただいたページですが、申し訳ない、1行も理解出来ませんでした。 出直します。

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

後者の,Aについてのグループ集計結果は,ビュー表を経由してselectを二重にしなくても次でいけますが,そういうご質問ですか? select a, sum(b), sum(C) from EMP group by a;

noname#91725
質問者

お礼

いつも下手くそな例を出してしまって申し訳ないのですが、 集計の結果をもう一度集計することが(負荷という視点から)良いことなのかどうか、 という意味合いです。 副問い合わせの入れ子をする時も同じ気持ちになるのです。

関連するQ&A