中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

SQL Server 2005 新機能 インデックス付きビュー

SQL Server 2005 新機能 インデックス付きビュー

[参考資料]
SQL Server 2005 インデックス付きビューによるパフォーマンスの向上
http://www.microsoft.com/japan/technet/prodtechnol/sql/2005/ipsql05iv.mspx

次のSQLServerではインデックス付きビューという機能が追加になる。
どういった機能かというと、読んだままだがテーブルに対するサブセットたるビューに対して、インデックスを張ることにより、読み取りが高速にすることが出来る。機能だ。

詳しくは上記資料を読んでほしいが、気になった点を数個所。(ただしこの気になった点は人によって違うだろう).

1. With Schemabindingを指定してビューを作成する必要がある。
テーブルに対して通常より強固に結びつくため、テーブルのカラム変更などでビューの再作成を伴う、またその際にインデックスも再構成されてしまう。

2.ビューの最初のインデックスはクラスタ、ユニークでなければいけない
クラスタでなく、ユニークなインデックスを作成するためには最低2個のインデックスが必要になるわけです。
もともとのテーブルとあわせると3つ
これらは見えにくいINSERTコストにかかってくるので、要注意

3.浮動小数や、非決定論的値はインデックスに出来ない。
ま、当然ですが、CLR UDTなんかで使いたいときには要注意

文書にも書いてありますが、複数のテーブルから構成されるビューのインデックスは、配下(親?)のいづれかのテーブルが更新されたとしてもインデックスの更新が走るので、これらのコストを無視してはいけない。
けど、INSERTコストをきっちりと調べる方法が無いのも問題。

投稿日時 : 2004年10月12日 17:50

コメントを追加

# re: SQL Server 2005 新機能 インデックス付きビュー 2004/10/13 16:01 入海

あれ?インデックス付きのビューって2000でできませんでしたっけ?

タイトル
名前
URL
コメント