SQL Server2008 ではどのEditionかに関わらず、インデックス付きビューを作成できる
作成するSQLは以下の通り
CREATE VIEW [dbo].[V_hoge] WITH SCHEMABINDING AS SELECT hoge1, cast(hoge as int) as hoge_int FROM dbo.zz_hoge GO CREATE UNIQUE CLUSTERED INDEX PK_V_Hoge ON V_Hoge (hoge_int); GO
ビューにインデックスを付与するには以下の条件がある
・ビューをWITH SCHEMABINDINGオプションで作成する
・SELECT * ではなく列名をきちんと定義する必要がある
主なデメリットとしては以下の通り
・インデックスの領域が必要
・元となったテーブルが更新されると再作成が発生する(複数テーブルを使用したビューは特に注意)
動作確認環境:SQL Server 2008 Enterprise