Indexed View在網路上已經可以找到很多文章了,
但這個功能對於MSSQL效能的應用實在重要,
建立indexed view的注意事項
1. WITH SCHEMABINDING
2. 使用兩節式物件描述. ex : [schema_name].[table_name]
3. 最後建立clustered index
T-SQL :
CREATE VIEW [schema_name].[view_name]
WITH SCHEMABINDING
AS
select_statement
GO
CREATE UNIQUE CLUSTERED INDEX [index_name]
ON [schema_name].[view_name] (column [ ,...n ]);
GO
在此記錄查詢indexed view時自己主要參考的幾篇文章,
(具執行計畫的比較)
[SQL SERVER][Performance]善用Indexed View#1測試
SQL Server Indexed Views: The Basics
對我個人來說容易忽略是
indexed view可以接受多筆NULL當作unique cluster index欄位的值,
一般的unique index只能允許一筆.
另外,使用View效能注意
可參考兼愛非攻的檢視表(View)文章,我個人會注重有
1. 避免使用nested view,會增加調校難度
2. 大部分可用stored procedure來取代,預編譯的執行計畫可提高效能
3. 使用indexed view提高效能.
並且文中寫到一點,僅企業版SQL Server的最佳化工具會自動使用indexed view的索引.
(其他要使用WITH (NOEXPAND)暗示指定使用indexed view中的索引)