SQLServer2005では、ビューのパフォーマンス改善のためにインデックス付きビューが作成できるようになった。
鳴り物入りで導入されたインデックスビューで、Oracleのマテリアライズドビューにも対抗できるかと思いきや、制約が厳しすぎて微妙だ。
たとえば、集計関数の一部(たとえばMax)を使ったクエリが含まれるビューは以下のようなエラーが出る。
ビュー "ZZZ" に インデックス を作成できません。ビューでは集計 "MAX" が使用されています。 集計を削除するか、ビューにインデックスを設定しないか、別の集計を使用することを検討してください。 たとえば、AVG の場合は SUM と COUNT_BIG に置き換え、COUNT の場合は COUNT_BIG に置き換えます。
サブクエリもだめ。
これでは、パフォーマンス上のボトルネックになるクエリの多くは、このインデックス付きビューでは扱えない。
あんまりだなぁ。。