- 締切済み
ビュー表の使い方
環境は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 ; と問い合わせる、みたいなかんじです。 なんとなく、一方で集計結果を維持したまま、もう一回集計をかけるというのが、 データベースにとっては負担のような気がするのですが、実際はどうなのでしょう? 若しくはもっとスマートなやり方があるのでしょうか。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nitorin
- ベストアンサー率55% (11/20)
こんにちは。 負荷がかかっているかどうなのかについては Oracleのパフォーマンスチューニングの調査フェーズで、 tkprofとかSQLトレースを使用して、どのようなアクセスパス になっているかを行います。これにより、SQLに対してのCPU使用率や 論理・物理読込回数が明確になります。 (つまり、ご自身で確認できるという事です。) わりと、簡単にできますので一度トレースをとってみてはいかが でしょうか?
- jjon-com
- ベストアンサー率61% (1599/2592)
後者の,Aについてのグループ集計結果は,ビュー表を経由してselectを二重にしなくても次でいけますが,そういうご質問ですか? select a, sum(b), sum(C) from EMP group by a;
お礼
いつも下手くそな例を出してしまって申し訳ないのですが、 集計の結果をもう一度集計することが(負荷という視点から)良いことなのかどうか、 という意味合いです。 副問い合わせの入れ子をする時も同じ気持ちになるのです。
お礼
ご回答ありがとうございます。 ご紹介いただいたページですが、申し訳ない、1行も理解出来ませんでした。 出直します。