none
SQL Server ビューの作成について RRS feed

  • 質問

  • お世話になっております。

    SQL Server 2008 R2 でのビューについてなのですが、

    ビューを作成した場合、その実体はファイルとして作成されるのでしょうか?

    ビューを大量に作成した場合、ディスク領域の容量がどれほど必要になるのか確認しておきたいので。

    ご回答の程、宜しくお願い致します。

    2012年1月10日 16:05

回答

  • 少し語弊がある気がします。

     

    単純にビューを作成しただけであれば、確かに気にする必要はないと思いますが、

    作成したビューにインデックスを設定した場合は話しが変わってきます。

     

    下記サイトにもありますが、

    「ビューに一意クラスタ化インデックスが設定されると、ビューの結果セットが直ちに作成されて、データベース内の物理ストレージに保存され、

    実行時に、この実行コストがかかる操作に必要なオーバーヘッドをなくすことができます。」

    とあります。

     

    これを見る限り、

    ビューには実データが格納されるわけではありませんので、”ビューにインデックスを持たせない限り”気にする必要はないと思います。

    って感じですかね。

     

    http://technet.microsoft.com/ja-jp/library/cc917715.aspx#EHAA

    • 回答としてマーク ok_koh 2012年1月12日 4:09
    2012年1月11日 0:30

すべての返信

  • ビューには実データが格納されるわけではありませんので、気にする必要はないと思います。

    下記リンク先にもビューは含まれていませんし。

    データベース サイズの見積もり

     


    Blog:プログラマーな日々 http://d.hatena.ne.jp/JHashimoto/
    2012年1月10日 22:23
  • 少し語弊がある気がします。

     

    単純にビューを作成しただけであれば、確かに気にする必要はないと思いますが、

    作成したビューにインデックスを設定した場合は話しが変わってきます。

     

    下記サイトにもありますが、

    「ビューに一意クラスタ化インデックスが設定されると、ビューの結果セットが直ちに作成されて、データベース内の物理ストレージに保存され、

    実行時に、この実行コストがかかる操作に必要なオーバーヘッドをなくすことができます。」

    とあります。

     

    これを見る限り、

    ビューには実データが格納されるわけではありませんので、”ビューにインデックスを持たせない限り”気にする必要はないと思います。

    って感じですかね。

     

    http://technet.microsoft.com/ja-jp/library/cc917715.aspx#EHAA

    • 回答としてマーク ok_koh 2012年1月12日 4:09
    2012年1月11日 0:30
  • インデックス付きビューについては気になりました。が…インデックス付きビューって使っている人いるんですかね? すごく扱いづらかったような…。
    2012年1月11日 1:51
  • ビューにもインデックスが付けられるのですね。知りませんでした。フォローありがとうございます。

    インデックス付きビューのデザイン


    Blog:プログラマーな日々 http://d.hatena.ne.jp/JHashimoto/
    2012年1月11日 3:36
  • 職場の別の課のプロジェクトで1度だけ使いましたね。

    何でそれが必要になったかは覚えていませんが・・・

    2012年1月11日 3:38
  • リンク先からの引用ですが

    インデックス付きビューは SQL Server 2008 のどのエディションでも作成できます。SQL Server 2008 Enterprise では、クエリ オプティマイザによる判断でインデックス付きビューが自動的に使用されます。その他のエディションでインデックス付きビューを使用するには、NOEXPAND テーブル ヒントを指定する必要があります。

    とあるように、Enterpirse以外のエディションでは SELECT * FROM IndexedView; などたとえどんな簡単なクエリーであってもビューに付けられているインデックスを参照しません。インデックスなしビューとして扱い、基になったテーブルを参照します。

    2012年1月11日 3:46
  • aviator__様

    ご回答いただき、ありがとうございます。

    大変参考になりました。

    2012年1月12日 4:11