none
Viewか?中間テーブルか? RRS feed

  • 質問

  • お世話になります。sa.yaと申します。

    環境:SQL Server2000及びMSDE、T-SQL、Visual C++

    とても概念的な初歩の内容なのかもしれないのですが、
    複数のテーブルからSELECTする際にどちらの方が
    パフォーマンス・メンテナンス性(相反するものかもしれませんが)
    で有利なのでしょうか?

    ※要件
    ・マスタテーブルが複数ある
    ・必要な情報をこの複数のテーブルから取得する必要がある
    ・この処理は複数個所、複数回利用される

    ※手段
    1) Viewを使う。Viewの中に必要な情報を結合して出力するSQL文を書く
    2) 中間テーブルを作る。そこからSELECTする。

    具体性に欠けるかと思いますが、
    もし一般論的にこうだ、とか
    こっちの方が正攻法だとか御座いましたらアドバイス御願いします。

    宜しく御願いします。

    2006年6月13日 6:49

回答

  • 具体性にかけるので適切なアドバイスは出来ません。

    Viewで基本的に問題があるとは思えませんが、サマリ結果の参照が多いだとかであれば中間テーブルを持ってもいいでしょうがそのテーブルを更新するタイミングの問題が発生します。

    ただある一瞬の参照のパフォーマンスだけを最速にしたいのであれば、出力する結果を先に作っておくのが最速なのは間違いないですからあとはバランスでしょう。

    2006年6月13日 13:41

すべての返信

  • 具体性にかけるので適切なアドバイスは出来ません。

    Viewで基本的に問題があるとは思えませんが、サマリ結果の参照が多いだとかであれば中間テーブルを持ってもいいでしょうがそのテーブルを更新するタイミングの問題が発生します。

    ただある一瞬の参照のパフォーマンスだけを最速にしたいのであれば、出力する結果を先に作っておくのが最速なのは間違いないですからあとはバランスでしょう。

    2006年6月13日 13:41
  • お世話になります。sa.yaです。

    中博俊さん、早速のレス有難う御座います。

    具体性の無いところに的確なアドバイスを頂き大変感謝です。

    実のところ現状の処理はビューですらなくコードへの埋め込みSQLである為、
    これをいかにしてビューやストアドなどに分割していくかというところで
    今回のような質問になりました。

    繰り返し回数や再利用の多い箇所は処理に応じて一時テーブルを作った方が、
    瞬間的なパフォーマンスが上げられるのか?というところで悩んでおりました。

    とても参考になりました。有難う御座いました。

    2006年6月14日 4:00