私はつい最近、SQL Server でビューのインデックスを作成できるようになったことに気付きました ( http://technet.microsoft.com/en-us/library/cc917715.aspxを参照)。実行パスがキャッシュされているストアド プロシージャ内の同じクエリと比較して、インデックス付きビューに対するクエリのパフォーマンスが向上する時期を把握しようとしています。
たとえば、次のようにします。
SELECT colA, colB, sum(colC), sum(colD), colE
FROM myTable
WHERE colFDate < '9/30/2011'
GROUP BY colA, colB, colE
日付は実行されるたびに異なるため、これがビューである場合は、ビューに含めず、WHERE
ビューに対する選択の一部として使用します。ストアド プロシージャの場合は、日付がパラメーターになります。テーブルには約 300,000 行あることに注意してください。それらの 200,000 は、日付の where 句を満たします。group by の後に 10,000 が返されます。
これがインデックス付きビューである場合、実行パスをキャッシュする機会があったストアド プロシージャよりも優れたパフォーマンスが期待できますか? それとも、プロセスはより高速になりますか?それとも、その差は無視できるものでしょうか? 「両方を試してみてください」と言うことができることは知っていますが、結果に誤った偏りを与えて誤った結論に導く可能性のある要因が多すぎるため、その背後にある理論と予想される結果をもっと知りたいと思います. .
ありがとう!