CREATE VIEW UserInfoView WITH SCHEMABINDING AS SELECT Email,User_ID from dbo.User_Info GO --以邮箱创建一个唯一聚集索引 CREATE UNIQUE CLUSTERED INDEX ix_UserInfo_Email ON UserInfoView (Email); GO
注意:创建索引视图要点:
1: CREATE VIEW memberView后面要跟上WITH SCHEMABINDING
理由:• 使用 schemaname.objectname 明确识别视图所引用的所有对象,而不管是哪个用户访问该视图。
• 不会以导致视图定义非法或强制 SQL Server 在该视图上重新创建索引的方式,更改视图定义中所引用的对象。
2:视图上的第一个索引必须为 CLUSTERED 和 UNIQUE。
理由:必须为 UNIQUE 以便在维护索引视图期间,轻松地按键值查找视图中的记录,并阻止创建带有重复项目的视图(要求维护特殊的逻辑)。必须为 CLUSTERED,因为只有聚集索引才能在强制唯一性的同时存储行。
3:以下情况可考虑创建索引视图:
• 可预先计算聚合并将其保存在索引中,从而在查询执行时,最小化高成本的计算。
• 可预先联接各个表并保存最终获得的数据集。
• 可保存联接或聚合的组合。
4:基础表的更新会引发索引视力的更新。
5:索引视图的创建同时会带来维护上的开销。
理由:• 因为索引视图是物理存在的。
• 要额外的维护索引.
部分文字来自网上